在Oracle中更改TIMESTAMP WITH TIMEZONE的时区组件

前端之家收集整理的这篇文章主要介绍了在Oracle中更改TIMESTAMP WITH TIMEZONE的时区组件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些数据存储在Oracle的TIMESTAMP(6)WITH TIMEZONE列中,但它存储在错误的时区中.按照惯例,数据库中的所有时间戳必须以UTC格式存储,但此数据不正确地保留为EDT.实际值等于正确的UTC值;问题只是它存储为19-JUN-12 12.20.42.000000000 PM AMERICA / NEW_YORK,而应该是19-JUN-12 16.20.42.000000000 PM UTC. Oracle有什么方法可以改变这个吗?

解决方法

您真的需要更改存储在数据库中的数据吗?通常,仅转换到不同的时区进行显示就足够了,即

SELECT <<your_timestamp_column>> AT TIME ZONE 'UTC'
  FROM <<your table>>

当然,如果你愿意,你也可以

UPDATE <<your table>>
   SET <<your timestamp column>> = <<your timestamp column>> AT TIME ZONE 'UTC'

改变所有数据.

猜你在找的Oracle相关文章