SET TIME ZONE
更改当前
会话的 TIME ZONE 运行时参数。使用
SHOW TIMEZONE
显示会话的当前时区。
如果您使用 POSIX 格式设置时区,您使用的时区缩写将覆盖默认时区缩写。如果将日期样式设置为 POSTGRES,在将时间戳转换为字符串时,也会使用您使用的时区缩写。
语法
SET TIME ZONE [TO] { value | 'value' }
注意
Vertica 将字面量TIME ZONE
和 TIMEZONE
视为同义词。
参数
- value
- 以下几项之一:
-
Vertica 支持的时区字面量。要查看默认的有效字面量列表,请参阅以下目录中的文件:
/opt/vertica/share/timezonesets
-
带符号整数,表示 UTC 偏移量(以小时为单位)
-
偏移量为带符号整数的时区字面量。例如:
=> SET TIME ZONE TO 'America/New York -3'; -- equivalent to Pacific time
注意
仅当 SET TIME ZONE 的实参为有效时区+偏移量组合时,此实参才有意义。但是,对于无意义的组合(例如America/NewYork + 150
),Vertica 也不会返回错误。 -
常数
LOCAL
和DEFAULT
,分别将时区设置为环境变量TZ
中指定的时区,或者如果TZ
未定义,则设置为操作系统时区。
只有有效的(时区+偏移量)组合才能作为此函数的参数。
-
特权
无
示例
=> SET TIME ZONE TO DEFAULT;
=> SET TIME ZONE TO 'PST8PDT'; -- Berkeley, California
=> SET TIME ZONE TO 'Europe/Rome'; -- Italy
=> SET TIME ZONE TO '-7'; -- UDT offset equivalent to PDT
=> SET TIME ZONE TO INTERVAL '-08:00 HOURS';