oracle的时区问题



下面的查询在我的代码中用于从数据库获取时区。(DB在中央时区)

SELECT DBTIMEZONE FROM DUAL;
-05:00

当夏令时(CDT),它的预期结果。

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

用谷歌搜索,得到以下选项:

SELECT TO_CHAR(SYSTIMESTAMP, 'TZR') FROM dual;
SELECT TZ_OFFSET('CST6CDT') FROM DUAL;

上述查询将正确运行相应的CST和CDT ??

DBTIMEZONE 确定SYSTIMESTAMP(或SYSDATE)的时区

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

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

相关内容

  • 没有找到相关文章

最新更新