在 Oracle 中使用时区更改时间戳的时区组件



我有一些数据存储在 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。甲骨文有什么办法可以改变这一点吗?

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

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'

以更改所有数据。

相关内容

  • 没有找到相关文章

最新更新