适用于:
Databricks SQL
Databricks Runtime
表示由字段 year、month、day、hour、minute 和 second 的值构成的值,使用会话本地时区。 时间戳值表示绝对时间点。
语法
TIMESTAMP [ (p) ] | TIMESTAMP_LTZ [ (p) ]
-
p:从6中选拔的9精度,表示分秒数字的数量。 默认值为6。 指定9纳秒精度。
Important
TIMESTAMP(p) 精确 7地——9 处于 Beta阶段。
限制
受支持的时间戳范围是 -290308-12-21 BCE 19:59:06 GMT 至 +294247-01-10 CE 04:00:54 GMT。
Note
写入Delta或Parquet时, TIMESTAMP(p) 精确度大于 6 1677年至2262年的数值限制在1677年至2262年之间。
文本
TIMESTAMP timestampString
TIMESTAMP_LTZ 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][ns][ns][ns][zoneId]' }
-
+或-:可选的符号。-指示 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][ns][ns][ns]:最多可达9位的分数秒。 指定恰好九个小数位来构造TIMESTAMP(9)文字。
zoneId?
- Z - 祖鲁时区 UTC+0
- +|-[h]h:[m]m
- 具有 UTC+、UTC-、GMT+、GMT-、UT+ 或 UT- 前缀的 ID,和具有以下格式的后缀:
- +|-h[h]
- +|-hh[:]mm
- +|-hh:mm:ss
- +|-hhmmss
- 基于区域的区域 ID,格式为
<area>/<city>,例如Europe/Paris。
如果未指定月份或日期部分,则默认为 1。
如果未指定小时、分钟或秒部分,则默认为 0。
如果未指定 zoneId,则它默认为会话时区,
如果文本不表示正确的时间戳,Azure Databricks 将引发错误。
说明
使用本地时区的时间戳将会在内部规范化并以 UTC 形式保存。 只要提取值或其中的一部分,就会应用本地会话时区。
要在Delta Lake表中使用 TIMESTAMP(9) 列,请启用时间戳精确功能:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timestampPrecision' = 'supported')
启用该功能会升级桌面协议。 不支持该功能的客户端无法读取或写入该表。 请参阅 Delta Lake 功能兼容性和协议。
示例
> SELECT TIMESTAMP'0000';
0000-01-01 00:00:00
> SELECT TIMESTAMP'2020-12-31';
2020-12-31 00:00:00
> SELECT TIMESTAMP'2021-7-1T8:43:28.123456';
2021-07-01 08:43:28.123456
> SELECT current_timezone(), TIMESTAMP'2021-7-1T8:43:28UTC+3';
America/Los_Angeles 2021-06-30 22:43:28
> SELECT CAST('1908-03-15 10:1:17' AS TIMESTAMP)
1908-03-15 10:01:17
> SELECT TIMESTAMP'+10000';
+10000-01-01 00:00:00
> SELECT typeof(TIMESTAMP'2026-08-18 14:30:45.123456789');
TIMESTAMP(9)
> SELECT CAST('2026-08-18 14:30:45.123456789' AS TIMESTAMP(9));
2026-08-18 14:30:45.123456789
TIMESTAMP(9) 表格限制
- 冰山表不支持。
- 不支持在三角洲湖表中生成的列。
- 不支持三角洲湖表中的液体聚类列。