TIMESTAMP
类型
适用于: Databricks SQL Databricks Runtime
表示由字段 year、month、day、hour、minute 和 second 的值构成的值,使用会话本地时区。 时间戳值表示绝对时间点。
语法
TIMESTAMP
限制
受支持的时间戳范围是 -290308-12-21 BCE 19:59:06 GMT
至 +294247-01-10 CE 04:00:54 GMT
。
文本
TIMESTAMP 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][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]
:秒最多 6 位小数。
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 形式保存。 只要提取值或其中的一部分,就会应用本地会话时区。
示例
> 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