TIMEZONE

说明

根据指定的时间或时间戳计算时区的偏移量。

语法

timezone ::=

参数

time_expression

该参数的类型可以是一个text类型的时间串,也可以是intervaldts类型的时间间隔。

timestamptz_expression

该参数的类型可以是timestamptz(带时区的时间戳类型)、timestamp(时间戳类型)、timetz(带时区的时间类型),这三种类型都支持所有的fmt格式。

返回值

根据在timestamptz_expression中输入的参数类型,返回值类型如下:
输入的参数类型 返回值类型
timestamptz timestamp
timestamp timestamptz
timetz timetz

示例

示例1: time_expression中输入的参数类型为intervaldts时,计算时间戳的偏移量。

注解

需要注意的是时区的范围是[-12:59, 14:00]。

select timezone('-0 1:20:00'::INTERVALDTS, '2022-08-04 20:39:39'::TIMESTAMP);
TIMEZONE(timestamptz)      |
---------------------------
2022-08-05 05:59:39 +08:00 |
总数目:1

示例2: time_expression中输入的参数类型为text时,计算时间的偏移量。

注解

需要注意的是默认时区是格林尼治时间(世界时),同北京时间相差八小时,而第二个参数是北京时间。

select timezone('+7:00', '2022-08-04 20:39:39');
TIMEZONE(timestamp)      |
-------------------------
2022-08-04 19:39:39      |
总数目:1