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