Oracle 数据库中的 sysdate 和 dbtimezone 不同

Use*_*123 3 sql oracle timezone sysdate

有了这个查询: select sysdate from dual;

结果是:27-09-2018 07:50:50 ——这个UK时间

和 : Select dbtimezone from dual;

输出: +10:00

我想要 sysdate是同一时区的dbtimezone

我试图用 alter database set time_zone='AEST',但如果这是正确的解决方案,我有点困惑。

任何帮助最受赞赏。谢谢。

Wer*_*eit 8

一个常见的误解DBTIMEZONE是时区SYSDATESYSTIMESTAMP

SYSDATESYSTIMESTAMP以数据库服务器所在操作系统的时区返回。

DBTIMEZONE是值的(内部)时区TIMESTAMP WITH LOCAL TIME。我不知道它有什么实际用途。请注意,DBTIMEZONE如果数据库包含带有TIMESTAMP WITH LOCAL TIME ZONE列的表并且该列包含数据,则您无法更改数据库。

如果你想在 DBTIMEZONE 运行当前时间

select SYSTIMESTAMP AT TIME ZONE DBTIMEZONE 
from dual;
Run Code Online (Sandbox Code Playgroud)

CURRENT_TIMESTAMP AT TIME ZONE DBTIMEZONE 也在工作。

另请参阅如何在 Oracle 数据库中处理夏令时