Oracle更改dbtimezone

时间:2013-09-18 09:57:37

标签: oracle oracle11g timezone

我的数据库配置了dbtimezone=+2:00

当我的应用程序发送带有时区的日期时,Oracle会自动将日期转换为dbtimezone并将其存储在列中吗?

当我的应用程序请求字段日期时,Oracle会自动将其转换为应用程序时区吗?

为了与业务规则保持一致,我想将此dbtimezone更改为UTC。所以我做了alter database set time_zone='UTC'命令,我重新启动了oracle服务器,现在select dbtimezone from dual;命令返回“UTC”。

但是,DB中的所有字段日期都没有改变(从GMT + 2到UTC没有变化-2小时)。当我询问sysdate时,它返回GMT + 2日期......我尝试将我的SQL Developer配置时区更改为UTC,但它没有改变任何内容。在显示数据库数据之前,是否存在将数据库数据转换为GMT + 2的Oracle会话参数问题?

最后,有没有人有一个很好的做法来做这个改变? (将数据库时区和现有日期更改为新时区)。

1 个答案:

答案 0 :(得分:0)

如果你所做的只是改变数据库时区设置,那么如果你的数据以TIMESTAMP WITH LOCAL TIME ZONE类型存储,你只会注意到输出的任何变化。

我不建议这样做。如果您的数据只存储在常规TIMESTAMP字段中并且已经设置为UTC,那会好得多。

您应该阅读有关所有不同date and time datatypes的文档,这样您就可以了解每种类型的工作原理和不同之处。