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
:包含至少四位數的年份。[m]m
:介於 01 到 12 之間的一或兩位數月份。[d]d
:介於 01 到 31 之間的一或兩位數日。h[h]
:介於 00 到 23 之間的一或兩位數小時。m[m]
:介於 00 到 59 之間的一或兩位數分鐘。s[s]
:介於 00 到 59 之間的一或兩位數秒。[ms][ms][ms][us][us][us]
:最多6位數的小數秒。
如果未指定月或日元件,則預設為 1。 如果未指定小時、分鐘或秒元件,則預設為 0。
如果常值不代表適當的時間戳,Azure Databricks 就會引發錯誤。
備註
- 目前
TIMESTAMP_NTZ
不支援類型: TIMESTAMP_NTZ
檔案來源支援類型,包括 Delta/Parquet/ORC/AVRO/JSON/CSV。 不過,JSON/CSV 檔案的架構推斷有TIMESTAMP_NTZ數據行的限制。 為了回溯相容性,或spark.read.json(...)
的默認推斷時間戳類型會是 TIMESTAMP 類型spark.read.csv(...)
,而不是TIMESTAMP_NTZ。
範例
> 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