AT TIME ZONE 函数
AT TIME ZONE 指定要与 TIMESTAMP 或 TIMESTAMPTZ 表达式一起使用的时区。
语法
AT TIME ZONE 'timezone'
Arguments
- timezone
-
返回值的时区。该时区可以指定为时区名称(例如
'Africa/Kampala'或者'Singapore')或作为时区缩写(例如'UTC'或者'PDT')。要查看支持的时区名称的列表,请执行以下命令。
select pg_timezone_names();要查看支持的时区缩写的列表,请执行以下命令。
select pg_timezone_abbrevs();有关更多信息以及示例,请参阅 时区使用说明。
返回类型
与 TIMESTAMP 表达式一起使用时的 TIMESTAMPTZ。与 TIMESTAMPTZ 表达式一起使用时的 TIMESTAMP。
示例
以下示例转换不带时区的时间戳值,并将其解释为 MST 时间(POSIX 中的 UTC+7),然后再转换为 PST(POSIX 中的 UTC+8)进行显示。
SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'MST'; timestamptz ------------------------ '2001-02-16 19:38:40-08'
以下示例采用带有时区值的输入时间戳,其中指定时区为 EST(POSIX 中的 UTC+5),然后将其转换为 MST(POSIX 中的 UTC+7)。
SELECT TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40-05' AT TIME ZONE 'MST'; timestamp ------------------------ '2001-02-16 18:38:40'