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 不支援類型:
    • 光子
    • 差異共用
    • Power BI、Tableau、Databricks JDBC/ODBC 驅動程式或 Databricks 開放原始碼 驅動程式中使用的 Databricks 數據源。
  • 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