TIME 類型

適用於:已勾選為 Databricks SQL 勾選為 是 Databricks 執行時 18.3 及以上版本

Important

這項功能位於 測試版 (Beta) 中。 工作區管理員可以從 「預覽 」頁面控制對此功能的存取。 請參閱 管理 Azure Databricks 預覽。

表示一天中由小時、分鐘和秒等欄位組成的時間點,且不包含時區。

Syntax

TIME | TIME(p)

p:一個可選的精確度,指定秒數欄位中的小數位數。 有效值為 06。 若 p 省略,預設精度為 6 (微秒)。

Limits

支援的時間值範圍為 00:00:00.00000023:59:59.999999

Literals

TIME timeString

timeString
{ '[h]h:[m]m' |
  '[h]h:[m]m:[s]s' |
  '[h]h:[m]m:[s]s.[f...]' |
  '[h]h:[m]m AM|PM' |
  '[h]h:[m]m:[s]s AM|PM' |
  '[h]h:[m]m:[s]s.[f...] AM|PM' }
  • [h]h:與 之間(24小時格式)1201或 之間(12小時格式)PM/AM之間的一或兩位數小時 。0023
  • [m]m:與59之間00有一或兩位數的分鐘。
  • [s]s:與 59之間00有一或兩位數的秒。
  • [f...]:最多 6 位數的小數秒。
  • AMPM:可選的大小寫不區分後綴,表示12小時制的時鐘數值。

前置詞 TIME 不區分大小寫。

若未指定第二個分量,則預設為 0

如果字面值不代表正確的時間,Azure Databricks 會產生錯誤。

精密規則

TIME兩個精度不同的值合併時(例如在 COALESCECASE、UNION 或算術中),結果會使用較寬的精度。

例如,和 TIME(6)TIME(3)最小常見類型是TIME(6)

當你將某個數值鑄造 TIME 到較低的精度時,分秒會 被截斷,而不是四捨五入:

> SELECT CAST(TIME'12:30:45.987654' AS TIME(3));
  12:30:45.987

當你將白天的時間區間加 TIME減到 時,結果會使用更 TIME 寬的精度和該區間的分秒精度。 例如,TIME(0) + INTERVAL '1.123456' SECOND 會傳回 TIME(6)。 若結果低於[00:00:00, 24:00:00),Azure Databricks會升高DATETIME_OVERFLOW

註釋

所有對 TIME 數值的運算皆未考慮任何時區。

若要在 Delta Lake 表格中使用 TIME 欄位,當您建立一個新的 Delta 表格並以 欄位 為 時 TIME ,支援會自動啟用。 要將欄位加入 TIME 現有資料表,您必須先啟用以下功能:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timeType' = 'supported')

TIME 類型有以下限制:

  • 生成欄位不支援。
  • 不支援用於布隆濾波器索引。
  • 不支援 Z 排序。

Examples

> SELECT TIME'10:30:00';
  10:30:00

> SELECT TIME'08:15';
  08:15:00

> SELECT TIME'23:59:59.123456';
  23:59:59.123456

> SELECT CAST('14:30:00' AS TIME);
  14:30:00

> SELECT CAST('09:15:30.5' AS TIME(3));
  09:15:30.500

> SELECT current_time();
  16:57:04.304361

> SELECT make_time(6, 30, 45.887);
  06:30:45.887000