TIMESTAMP_NTZ type | Databricks on AWS [2023/5/11時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
年、月、日、時、分、秒のフィールドの値から構成される値を表現します。すべてのオペレーションはタイムゾーンを考慮しないで実行されます。
この機能はパブリックプレビューです。サポートされない機能に関しては注意セクションをご覧ください。
Delta Lakeにこの機能を使用するには、テーブルでサポートを有効化する必要があります。TIMESTAMP_NTZ
タイプのカラムを持つ新規Deltaテーブルを作成した際には、機能サポートは自動で有効化されます。TIMESTAMP_NTZ
カラムのサポートを有効化するには、既存テーブルでは明示的に機能を有効化しなくてはなりません。
サポートの有効化によってテーブルプロトコルをアップグレードします。How does Databricks manage Delta Lake feature compatibility?をご覧ください。以下のコマンドはこの機能を有効化します:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timestampNtz' = 'supported')
構文
TIMESTAMP_NTZ
制限
サポートされるタイムスタンプのレンジは、June 23 -5877641 CE
からJuly 11 +5881580 CE
です。
リテラル
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となります。
リテラルが適切なタイムスタンプを表現しない場合、レラーが発声します。
注意
- 現在、
TIMESTAMP_NTZ
タイプは以下ではサポートされていません:- Photon
- Delta Sharing
- Power BI、Tableau、Databricks JDBC/ODBCドライバー、Databricksオープンソースドライバーで使用されるDatabricksデータソース。
-
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