TIMESTAMP_NTZ
型
適用対象: Databricks SQL Databricks Runtime 13.3 LTS 以降
フィールドの値 (年、月、日、時、分、秒) を構成する値を表します。 すべての操作は、タイム ゾーンを考慮せずに実行されます。
この機能はパブリック プレビュー段階にあります。 サポートされていない機能については、「注」のセクションを参照してください。
Delta Lake でこの機能を使用するには、テーブルのサポートを有効にする必要があります。 TIMESTAMP_NTZ
型の列を持つ新しい Delta テーブルを作成すると、機能のサポートは自動的に有効になります。 TIMESTAMP_NTZ
型の列を既存のテーブルに追加しても、自動的に有効にはなりません。 TIMESTAMP_NTZ
列のサポートを有効にするには、既存のテーブルに対して機能のサポートを明示的に有効にする必要があります。
サポートを有効にすると、テーブル プロトコルがアップグレードされます。 「Azure Databricks で Delta Lake 機能の互換性を管理する方法」を参照してください。 次のコマンドは、この機能を有効にします。
ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timestampNtz' = 'supported')
構文
TIMESTAMP_NTZ
制限
サポートされているタイムスタンプの範囲は -290308-12-21 BCE 19:59:06
から +294247-01-10 CE 04:00:54
です。
リテラル
TIMESTAMP_NTZ timestampString
timestampString
{ '[+|-]yyyy[...]' |
'[+|-]yyyy[...]-[m]m' |
'[+|-]yyyy[...]-[m]m-[d]d' |
'[+|-]yyyy[...]-[m]m-[d]d ' |
'[+|-]yyyy[...]-[m]m-[d]d[T][h]h[:]' |
'[+|-]yyyy[..]-[m]m-[d]d[T][h]h:[m]m[:]' |
'[+|-]yyyy[...]-[m]m-[d]d[T][h]h:[m]m:[s]s[.]' |
'[+|-]yyyy[...]-[m]m-[d]d[T][h]h:[m]m:[s]s.[ms][ms][ms][us][us][us]' }
+
または-
: 省略可能な記号。-
は BCE を示し、+
は CE (既定値) を示します。yyyy
: 少なくとも 4 桁の数字で構成される年。[m]m
: 01 から 12 までの月を表す 1 桁または 2 桁の数字。[d]d
: 01 から 31 までの日を表す 1 桁または 2 桁の数字。h[h]
: 00 から 23 までの時間を表す 1 桁または 2 桁の数字。m[m]
: 00 から 59 までの分を表す 1 桁または 2 桁の数字。s[s]
: 00 から 59 までの秒を表す 1 桁または 2 桁の数字。[ms][ms][ms][us][us][us]
: 秒の小数部の最大 6 桁の数字。
月または日のコンポーネントが指定されていない場合、既定値は 1 です。 時間、分、または秒のコンポーネントが指定されていない場合、既定値は 0 です。
リテラルが適切なタイムスタンプを表していない場合、Azure Databricks ではエラーが発生します。
メモ
TIMESTAMP_NTZ
には次の制限が適用されます。
- Photon のサポートには Databricks Runtime 15.4 以降が必要です。
- Power BI、Tableau、Databricks JDBC/ODBC ドライバー、または Databricks オープン ソース ドライバーで使用される Databricks データ ソースではサポートされません。
- Databricks Runtime 14.0 以下の Delta Sharing ではサポートされていません。
TIMESTAMP_NTZ
型は、Delta/Parquet/ORC/AVRO/JSON/CSV などのファイル ソースでサポートされています。 ただし、TIMESTAMP_NTZ 列を含む JSON/CSV ファイルのスキーマ推論には制限があります。 下位互換性のために、spark.read.csv(...)
またはspark.read.json(...)
から推定される既定のタイムスタンプ型は、TIMESTAMP_NTZ ではなく TIMESTAMP 型になります。
例
> SELECT TIMESTAMP_NTZ'0000';
0000-01-01 00:00:00
> SELECT TIMESTAMP_NTZ'2020-12-31';
2020-12-31 00:00:00
> SELECT TIMESTAMP_NTZ'2021-7-1T8:43:28.123456';
2021-07-01 08:43:28.123456
> SELECT current_timezone(), CAST(TIMESTAMP '2021-7-1T8:43:28' as TIMESTAMP_NTZ);
America/Los_Angeles 2021-07-01 08:43:28
> SELECT CAST('1908-03-15 10:1:17' AS TIMESTAMP_NTZ)
1908-03-15 10:01:17
> SELECT TIMESTAMP_NTZ'+10000';
+10000-01-01 00:00:00