在oracle中出现时区问题

时间:2016-11-16 09:26:33

标签: oracle timezone

我的代码中使用了以下查询来从数据库中获取时区。 (DB位于中心时区)

SELECT DBTIMEZONE FROM DUAL;
-05:00

启用夏令时(CDT)时,其预期结果。

但是当夏令时结束(CST)时,我的结果应该是GMT-06,但我仍然得到GMT-05。

用Google搜索并获得以下选项:

SELECT TO_CHAR(SYSTIMESTAMP, 'TZR') FROM dual;

SELECT TZ_OFFSET('CST6CDT') FROM DUAL;

以上查询是否会根据CST和CDT正确运行?

1 个答案:

答案 0 :(得分:1)

DBTIMEZONE 确定SYSTIMESTAMP(或SYSDATE)的时区

SYSTIMESTAMP的时区是数据库服务器操作系统的时区。

DBTIMEZONE仅与数据类型TIMESTAMP WITH LOCAL TIME ZONE相关,并定义这些值在内部存储的时区。如果数据库包含一个包含DBTIMEZONE列且该列包含数据的表,则无法更改数据库上的TIMESTAMP WITH LOCAL TIME ZONE