Oracle TZ_OFFSET() 函数使用指南
Oracle TZ_OFFSET() 是一个内置函数,它根据语句的执行日期返回与参数对应的时区偏移量。
Oracle TZ_OFFSET() 语法
这里是 Oracle TZ_OFFSET() 函数的语法:
TZ_OFFSET(tz)
参数
tz-
必需的。它可以时区区域名称,相对于 UTC 的时区偏移,或关键字
SESSIONTIMEZONE或DBTIMEZONE。
返回值
Oracle TZ_OFFSET() 函数返回参数对应的时区偏移量。
如果任意一个参数为 NULL, TZ_OFFSET() 将返回 NULL。
Oracle TZ_OFFSET() 示例
这里有几个展示了 Oracle TZ_OFFSET() 函数用法的示例。
时区名称
Oracle TZ_OFFSET() 函数允许您使用时区区域名称以获取其对应的时区偏移量。
SELECT
TZ_OFFSET('Europe/Astrakhan') "Europe/Astrakhan",
TZ_OFFSET('Asia/Shanghai') "Asia/Shanghai",
TZ_OFFSET('Pacific/Kosrae') "Pacific/Kosrae"
FROM dual;
输出:
Europe/Astrakhan Asia/Shanghai Pacific/Kosrae
___________________ ________________ _________________
+04:00 +08:00 +11:00您可以使用下面的语句获取更多的时区名称:
SELECT
TZNAME
FROM v$timezone_names;
时区偏移量
如果您提供一个时区偏移量,Oracle TZ_OFFSET() 函数将直接返回此参数:
SELECT
TZ_OFFSET('+04:00') "+04:00",
TZ_OFFSET('-04:00') "-04:00"
FROM dual;
输出:
+04:00 -04:00
_________ _________
+04:00 -04:00SESSIONTIMEZONE
您可以使用关键字 SESSIONTIMEZONE 以让 Oracle TZ_OFFSET() 函数返回会话时区的时区偏移量:
SELECT
TZ_OFFSET(SESSIONTIMEZONE) SESSIONTIMEZONE
FROM dual;
输出:
SESSIONTIMEZONE
__________________
+08:00DBTIMEZONE
您可以使用关键字 DBTIMEZONE 以让 Oracle TZ_OFFSET() 函数返回服务器时区的时区偏移量:
SELECT
TZ_OFFSET(DBTIMEZONE) DBTIMEZONE
FROM dual;
输出:
DBTIMEZONE
_____________
+00:00NULL 参数
如果任意一个参数为 NULL, TZ_OFFSET() 将返回 NULL。
SET NULL 'NULL';
SELECT
TZ_OFFSET(NULL)
FROM dual;
输出:
TZ_OFFSET(NULL)
__________________
NULL在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。
结论
Oracle TZ_OFFSET() 是一个内置函数,它根据语句的执行日期返回与参数对应的时区偏移量。