適用対象: Databricks SQL
Databricks Runtime
Azure Databricks での datetime の使用には、いくつかの一般的なシナリオがあります。
- CSV および JSON のデータ ソースでは、datetime コンテンツの解析および書式設定にパターン文字列を使用します。
-
STRING
とDATE
またはTIMESTAMP
との間の変換に関連する datetime 関数。 例:
パターン テーブル
Azure Databricks では、次の表に示すパターン文字を使用して、日付とタイムスタンプの解析と書式設定を行います。
シンボル | 意味 | プレゼンテーション | 例 |
---|---|---|---|
G | 紀元 | テキスト | AD、Anno Domini |
y | 年 | 年 | 2020、20 |
D | 通算日 | 数字(3) | 189 |
M/L | 月 | 月 | 7、07、Jul、July |
d | 日にち | 数字(3) | 28 |
Q/q | 四半期 | number/text | 3、03、Q3、第 3 四半期 |
E | 曜日 | テキスト | Tue、Tuesday |
F | 月の通算曜日 | 番号(1) | 3 |
a | 日の午前 - 午後 | am-pm | 午後 |
時 | 午前 - 午後のクロック時間 (1 から 12) | 番号(2) | 12 |
K | 午前 - 午後の時間 (0 から 11) | 番号(2) | 0 |
k | 日のクロック時間 (1 から 24) | 番号(2) | 0 |
H | 日の時間 (0 から 23) | 番号(2) | 0 |
m | 時間の分 | 番号(2) | 30 |
s | 分の秒 | 番号(2) | 55 |
S | 秒の小数部分 | 端数 | 978 |
V | タイム ゾーン ID | ゾーンID | America/Los_Angeles、Z、-08:30 |
z | タイム ゾーン名 | ゾーン名 | 太平洋標準時、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 |
' | テキストのエスケープ | デリミタ | |
'' | 単一引用符 | リテラル | 「」 |
= | 省略可能なセクションの開始 | ||
= | 省略可能なセクションの終了 |
パターン文字の数によって、書式が決まります。
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' の数に応じてゼロで埋められます。 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: パターン文字の数に基づいてオフセットを書式設定します。 分が 0 以外の場合、分も出力される場合 ('+0130' など) でない限り、1 文字は "+01" などの時間のみを出力します。 "+0130" などのコロンを使用せずに、2 文字で時間と分を出力します。 "+01:30" などのコロンを使用して、3 文字で時間と分を出力します。 4 文字の場合、"+013015" などのコロンを使用せずに、時間と分と省略可能な秒が出力されます。 5 文字の場合、時間と分と省略可能な秒が出力され、"+01:30:15" などのコロンが付きます。 6 文字以上は失敗します。 出力するオフセットが 0 の場合、パターン文字 'X' (大文字) は 'Z' を出力し、パターン文字 'x' (小文字) は '+00'、'+0000'、または '+00:00' を出力します。
Offset O: パターン文字の数に基づいて、ローカライズされたオフセットを書式設定します。 1文字はローカライズされたオフセットの略形式を出力します。これは、例えば "GMT" のようなローカル化されたオフセット表示であり、先頭にゼロが付かない時間、必要に応じて非ゼロの場合は2桁の分と秒、そしてコロンを伴った形式です(例: "GMT+8")。 4 文字で完全な形式が出力されます。これは、"GMT" などのローカライズされたオフセット テキストで、2 桁の時間と分のフィールド、0 以外の場合は省略可能な 2 番目のフィールド、コロン ("GMT+08:00" など) が出力されます。 その他の文字数は失敗します。
Offset Z: パターン文字の数に基づいてオフセットを書式設定します。 "+0130" などのコロンを使用せずに、1 文字、2 文字、3 文字で時間と分を出力します。 オフセットが 0 の場合、出力は '+0000' です。 4 文字の場合は、完全な書式のローカライズされたオフセットが出力されます。これは、Offset-O の 4 文字の場合に相当します。 オフセットが 0 の場合、出力は対応するローカライズされたオフセット テキストになります。 5 文字の場合は、時間、分、オプションの秒 (ゼロでない場合) が、コロン付きで出力されます。 オフセットが 0 の場合、'Z' が出力されます。 6 文字以上は失敗します。
省略可能なセクションの開始と終了: 省略可能な、入れ子になっている可能性があるセクションを定義するには、
[]
を使用します。 書式設定の場合、有効なすべてのデータは、省略可能なセクション内にある場合でも出力されます。 解析の場合、解析された文字列でセクション全体が欠落している可能性があります。 省略可能なセクションは、[
によって開始され、]
を使用して終了します (またはパターンの末尾で)。'E'、'F'、'q'、'Q' のシンボルは、
date_format
など、datetime の書式設定にのみ使用できます。 これらは、datetime の解析 (to_timestamp
など) では使用できません。