Oracle时区

时间:2012-11-16 06:21:39

标签: oracle

我有一个在单个时区运行的应用程序(java - oracle 11g R2)。现在它必须在多个时区运行。我的要求是,想要将数据存储在一个时区(比如IST),而不管登录时区。但是希望应用程序根据相应的实体时区向用户显示日期和时间。我将无法更改已编写的所有oracle查询。想要将用户附加到用户的位置和用户登录alter(oracle)会话到他的本地时区。

这可能吗?

2 个答案:

答案 0 :(得分:1)

数据类型TIMESTAMP WITH LOCAL TIME ZONE可识别时区。它将数据存储在数据库服务器的时区中。如果用户从其他时区连接,则存储的值将显示在其本地时区。

要更改DATE列,您可以使用

ALTER TABLE mytable MODIFY d TIMESTAMP WITH LOCAL TIME ZONE;

可以检查查询,详情请参阅Migrating Oracle DATE columns to TIMESTAMP with timezone

答案 1 :(得分:0)

使用Oracle DATE类型,它存储独立于时区的日期。

然后,请注意Java Date类也与时区无关。

通过这种方式,当您将它们格式化为字符串以将其显示给客户端时,日期只会获得时区。

我经常看到这个问题,我最近写了一篇关于它的博客文章。 见here