AT TIME ZONE 函数
AT TIME ZONE 指定要与 TIMESTAMP 或 TIMESTAMPTZ 表达式一起使用的时区。
语法
AT TIME ZONE 'timezone'
参数
- timezone
-
返回值的
TIMEZONE
。该时区可以指定为时区名称(例如'Africa/Kampala'
或者'Singapore'
)或作为时区缩写(例如'UTC'
或者'PDT'
)。要查看支持的时区名称的列表,请执行以下命令。
select pg_timezone_names();
要查看支持的时区缩写的列表,请执行以下命令。
select pg_timezone_abbrevs();
有关更多信息以及示例,请参阅 时区使用说明。
返回类型
与 TIMESTAMP 表达式一起使用时的 TIMESTAMPTZ。与 TIMESTAMPTZ 表达式一起使用时的 TIMESTAMP。
示例
以下示例转换不带时区的时间戳值,并将其解释为 MST 时间(POSIX 中的 UTC+7)。该示例返回 UTC 时区的数据类型为 TIMESTAMPTZ 的值。如果将默认时区配置为 UTC 以外的时区,可能会出现不同的结果。
SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'MST';
timezone ------------------------ 2001-02-17 03:38:40+00
以下示例采用带有时区值的输入时间戳,其中指定时区为 EST(POSIX 中的 UTC+5),然后将其转换为 MST(POSIX 中的 UTC+7)。该示例返回一个数据类型为 TIMESTAMP 的值。
SELECT TIMESTAMPTZ '2001-02-16 20:38:40-05' AT TIME ZONE 'MST';
timezone ------------------------ 2001-02-16 18:38:40