Oracle 更改数据库时区



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

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

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

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

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

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

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

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

您应该阅读有关所有不同日期和时间数据类型的文档,以便了解每种类型的工作方式以及彼此的不同之处。

相关内容

  • 没有找到相关文章

最新更新