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:00
SESSIONTIMEZONE
您可以使用关键字 SESSIONTIMEZONE
以让 Oracle TZ_OFFSET()
函数返回会话时区的时区偏移量:
SELECT
TZ_OFFSET(SESSIONTIMEZONE) SESSIONTIMEZONE
FROM dual;
输出:
SESSIONTIMEZONE
__________________
+08:00
DBTIMEZONE
您可以使用关键字 DBTIMEZONE
以让 Oracle TZ_OFFSET()
函数返回服务器时区的时区偏移量:
SELECT
TZ_OFFSET(DBTIMEZONE) DBTIMEZONE
FROM dual;
输出:
DBTIMEZONE
_____________
+00:00
NULL 参数
如果任意一个参数为 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()
是一个内置函数,它根据语句的执行日期返回与参数对应的时区偏移量。