OceanBase 时间戳字面量

2021-06-29 15:04 更新

OceanBase 支持以下三种时间戳字面量:

  • TIMESTAMP
  • TIMESTAMP WITH TIME ZONE
  • TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP 字面量

TIMESTAMP[(scale)] ​数据类型存储了年、月、日、时、分、秒和小数秒值的值。当指定 TIMESTAMP 字面量时,秒字段最大可以指定精度到第9位的纳秒:

TIMESTAMP '2020-02-25 11:26:18.316'

TIMESTAMP WITH TIME ZONE 字面量

TIMESTAMP WITH TIME ZONE 字面量是包含时区信息的时间戳字面量。

TIMESTAMP [(scale)] WITH TIME ZONE​ 数据类型是 ​TIMESTAMP[(scale)]​ 数据类型的一种变体,它在​TIMESTAMP[(scale)] ​数据类型的基础上还存储时区偏移量或者时区区域名称等信息。在指定 TIMESTAMP WITH TIME ZONE 字面量时,需要指定时区信息并且秒字段最大可以指定精度到第9位的纳秒,以下示例使用时区偏移量指定了时区字段的值:

TIMESTAMP '2020-02-25 11:26:18.316 +08:00'
    

当两个 TIMESTAMP WITH TIME ZONE 字面量中的值表示 GMT 时区的同一时刻,那么尽管它们的时区字段的值不同,它们也被视为相同的字面量。如以下示例所示,GMT-8 时区的早上 8 点和 GMT-5 时区的早上11点其实是同一时刻:

TIMESTAMP '2020-04-25 08:26:18.316 -08:00'
TIMESTAMP '2020-04-25 11:26:18.316 -05:00'

同样的,在字面量中我们可以使用时区区域名称替换时区偏移量,如下所示的示例中将 -08:00 替换为了 America/Los_Angeles

TIMESTAMP '2020-02-01 11:00:00 America/Los_Angeles'

由于一些地区有夏令时的转换,为了消除夏令时转换时时间的歧义,在指点字面量的值时可以同时使用 时区区域名称(TZR)和相应的缩写 (TZD)以确保字面量的值为夏令时:

TIMESTAMP '2020-06-01 11:00:00 America/Los_Angeles PDT'

TIMESTAMP WITH LOCAL TIME ZONE 字面量

TIMESTAMP [(scale)] WITH LOCAL TIME ZONE​ 数据类型是包含本地时区信息的数据类型。OceanBase 中并没有专门的 TIMESTAMP WITH LOCAL TIME ZONE 字面量,是通过其他有效的日期时间字面量来为​TIMESTAMP [(scale)] WITH LOCAL TIME ZONE​ 数据类型赋值的。下表显示了一些可用于将值插入 TIMESTAMP WITH LOCAL TIME ZONE 列的格式,以及查询返回的相应值:

INSERT 语句中指定的值

查询返回的值

'25-FEB-20'

25-FEB-20 00.00.000000

SYSTIMESTAMP

25-FEB-20 14:28:41.264258

TO_TIMESTAMP('25-FEB-2020', 'DD-MON-YYYY')

25-FEB-20 00.00.000000

SYSDATE

25-FEB-20 02.55.29.000000 PM

TO_DATE('25-FEB-20', 'DD-MON-YYYY')

25-FEB-20 12.00.00.000000 AM

TIMESTAMP'2020-02-25 8:00:00 America/Los_Angeles'

25-FEB-20 08.00.00.000000 AM


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号