datetime パターン
適用対象: Databricks SQL Databricks Runtime
Azure Databricks での datetime の使用には、いくつかの一般的なシナリオがあります。
- CSV および JSON のデータ ソースでは、datetime コンテンツの解析および書式設定にパターン文字列を使用します。
STRING
とDATE
またはTIMESTAMP
との間の変換に関連する datetime 関数。 例:
パターン テーブル
Azure Databricks では、次の表に示すパターン文字を使用して、日付とタイムスタンプの解析と書式設定を行います。
シンボル | 意味 | プレゼンテーション | 例 |
---|---|---|---|
G | 紀元 | text | AD、Anno Domini |
y | year | year | 2020、20 |
D | 通算日 | number(3) | 189 |
M/L | 月 | month | 7、07、Jul、July |
d | 日にち | number(3) | 28 |
Q/q | 四半期 | number/text | 3、03、Q3、第 3 四半期 |
E | 曜日 | text | Tue、Tuesday |
F | 月の通算曜日 | number(1) | 3 |
a | 日の午前 - 午後 | am-pm | PM |
h | 午前 - 午後のクロック時間 (1 から 12) | number(2) | 12 |
K | 午前 - 午後の時間 (0 から 11) | number(2) | 0 |
k | 日のクロック時間 (1 から 24) | number(2) | 0 |
H | 日の時間 (0 から 23) | number(2) | 0 |
m | 時間の分 | number(2) | 30 |
s | 分の秒 | number(2) | 55 |
S | 秒の小数部分 | fraction | 978 |
V | タイム ゾーン ID | zone-id | America/Los_Angeles、Z、-08:30 |
z | タイム ゾーン名 | zone-name | 太平洋標準時、PST |
O | ローカライズされたゾーン オフセット | offset-O | GMT+8、GMT+08:00、UTC-08:00 |
X | ゼロが "Z "のゾーン オフセット | offset-X | Z、-08、-0830、-08:30、-083015、-08:30:15 |
x | ゾーン オフセット | offset-x | +0000、-08、-0830、-08:30、-083015、-08:30:15 |
Z | ゾーン オフセット | offset-Z | +0000、-0800、-08:00 |
= | テキストのエスケープ | delimiter | |
$ | 単一引用符 | リテラル | = |
= | 省略可能なセクションの開始 | ||
= | 省略可能なセクションの終了 |
パターン文字の数によって、書式が決まります。
Text: テキスト スタイルは、使用されるパターン文字の数に基づいて決定されます。 4 文字未満のパターン文字では、短いテキスト書式 (通常は省略形) が使用されます。たとえば、曜日の月曜日 (Monday) は "Mon" と出力されます。 正確に 4 文字のパターン文字では、フル テキスト書式 (通常は完全な記述) が使用されます。たとえば、曜日の月曜日 (Monday) は "Monday" と出力されます。 5 文字以上は失敗します。
Number(n): ここで、n は、この種類の datetime パターンで使用できる最大文字数を表します。 文字数が 1 である場合、値は最小桁数を使用し、パディングなしで出力されます。 それ以外の場合は、桁数が出力フィールドの幅として使用され、必要に応じて値 0 がパディングされます。
Number/Text: パターン文字の数が 3 以上の場合は、上の Text の規則を使用します。 それ以外の場合は、上の Number の規則を使用します。
Fraction: 秒の小数点以下を解析したり書式設定したりするには、1 つまたは複数 (最大 9 文字) の連続する
'S'
文字 (たとえば、SSSSSS
) を使用します。 解析の場合、許容される小数の長さは [1, 連続する "S" の数] になります。 書式設定の場合、小数の長さは連続する "S" の数まで 0 でパディングされます。 Azure Databricks では、マイクロ秒の精度の datetime がサポートされており、これは最大 6 桁に相当しますが、ナノ秒を分析することができ、超過部分は切り詰められます。Year: 文字数によって、最小フィールド幅が決まり、それ以下はパディングされます。 文字数が 2 の場合は、短縮された 2 桁の書式が使用されます。 印刷の場合は、右端の 2 桁が出力されます。 解析の場合は、2000 のベース値を使用して解析され、2000 から 2099 の範囲内の年になります。 文字数が 4 未満 (ただし 2 ではない) の場合、符号は負の年に対してのみ出力されます。 それ以外の場合は、"G" がないときにパディング幅を超過すると符号が出力されます。 7 文字以上は失敗します。
Month: Number/Text の規則に従います。 テキスト書式は文字に依存します。
'M'
は "標準" 書式を表し、'L'
は "スタンドアロン" 書式です。 この 2 つの書式は、一部の特定の言語でのみ異なります。 たとえば、ロシア語では、"Июль" は 7 月のスタンドアロン書式で、"Июля" は標準書式です。 サポートされているすべてのパターン文字の例を次に示します。'M'
または'L'
: 1 から始まる 1 年の月番号。'M'
と'L'
に違いはありません。 1 から 9 までの月は、パディングなしで出力されます。> SELECT date_format(date '1970-01-01', 'M'); 1 > SELECT date_format(date '1970-12-01', 'L'); 12
'MM'
または'LL'
: 1 から始まる 1 年の月番号。 1 から 9 月には、0 のパディングが追加されます。> SELECT date_format(date '1970-1-01', 'LL'); 01 > SELECT date_format(date '1970-09-01', 'MM'); 09
'MMM'
: 標準書式の短いテキスト表現。 英語のように標準書式とスタンドアロン書式に違いがないロケールを除き、月パターンは、単なるスタンドアロンの月ではなく、日付パターンの一部である必要があります。> SELECT date_format(date '1970-01-01', 'd MMM'); 1 Jan -- Passing a format pattern to to_csv() > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU')); 01 янв.
'MMMM'
: 標準書式でのフル テキストの月の表現。 日付またはタイムスタンプの一部として月を解析または書式設定するために使用されます。> SELECT date_format(date '1970-01-01', 'd MMMM'); 1 January -- Passing a format pttern to to_csv() > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU')); 1 января
am-pm: 一日の午前か午後が出力されます。 パターン文字数は 1 でなければなりません。
Zone ID(V): タイム ゾーン ID の表示が出力されます。 パターン文字数は 2 でなければなりません。
Zone names(z): タイム ゾーン ID のテキスト名の表示が出力されます。 文字数が 1、2、または 3 の場合は、短い名前が出力されます。 文字数が 4 の場合は、完全な名前が出力されます。 5 文字以上は失敗します。
Offset X および x: パターン文字の数に基づいてオフセットを書式設定します。 1 文字の場合は、"+01" のように時間だけが出力されます。ただし、分が 0 以外の場合は、分も出力されます (例: "+0130")。 2 文字の場合は、"+0130" のように、コロンなしで時間と分が出力されます。 3 文字の場合は、"+01:30" のように、コロン付きで時間と分が出力されます。 4 文字の場合は、"+013015" のように、時間および分とオプションで秒が、コロンなしで出力されます。 5 文字の場合は、"+01:30:15" のように、時間および分とオプションで秒が、コロン付きで出力されます。 6 文字以上は失敗します。 パターン文字 "X" (大文字) は、出力されるオフセットが 0 である場合に "Z" を出力します。一方、パターン文字 "x" (小文字) は、"+00"、"+0000"、または "+00:00" を出力します。
Offset O: パターン文字の数に基づいて、ローカライズされたオフセットを書式設定します。 1 文字の場合は、ローカライズされたオフセットの短い書式が出力されます。これは、"GMT+8" のように、ローカライズされたオフセット テキスト ("GMT" など) と、先頭にゼロが付かない時間です。オプションの分と秒は、ゼロでない場合に 2 桁で表記され、コロンが付きます。 4 文字の場合は、完全な書式が出力されます。これは、"GMT+08:00" のように、ローカライズされたオフセット テキスト ("GMT" など) と、2 桁の時間と分のフィールドです。オプションの秒フィールドは、ゼロでない場合にコロン付きで表記されます。 その他の文字数は失敗します。
Offset Z: パターン文字の数に基づいてオフセットを書式設定します。 1、2、または 3 文字の場合は、"+0130" のように、コロンなしで時間と分が出力されます。 オフセットが 0 の場合、出力は "+0000" になります。 4 文字の場合は、完全な書式のローカライズされたオフセットが出力されます。これは、Offset-O の 4 文字の場合に相当します。 オフセットが 0 の場合、出力は対応するローカライズされたオフセット テキストになります。 5 文字の場合は、時間、分、オプションの秒 (ゼロでない場合) が、コロン付きで出力されます。 オフセットが 0 の場合は、"Z" が出力されます。 6 文字以上は失敗します。
省略可能なセクションの開始と終了: 省略可能な、入れ子になっている可能性があるセクションを定義するには、
[]
を使用します。 書式設定の場合、有効なすべてのデータは、省略可能なセクション内にある場合でも出力されます。 解析の場合、解析された文字列でセクション全体が欠落している可能性があります。 省略可能なセクションは、[
によって開始され、]
を使用して終了します (またはパターンの末尾で)。シンボルの "E"、"F"、"q"、および "Q" は、datetime の書式設定 (
date_format
など) に対してのみ使用できます。 これらは、datetime の解析 (to_timestamp
など) では使用できません。