更改时间戳的时区组件与甲骨文TIMEZONE(Change timezone component o

2019-06-25 14:15发布

我有一个存储在一些数据TIMESTAMP(6) WITH TIMEZONE在Oracle列,但它被存储在错误的时区。 按照惯例,在数据库中的所有时间戳必须存储在UTC,但这个数据不正确,坚​​持为EDT。 实际值等同于正确的UTC值; 该问题很简单,它被存储为19-JUN-12 12.20.42.000000000 PM AMERICA/NEW_YORK当代替它应该是19-JUN-12 16.20.42.000000000 PM UTC 。 有没有在甲骨文没有办法改变呢?

Answer 1:

你真的需要改变存储在数据库中的数据? 通常情况下,它足以只转换为不同的时区显示,即

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'

改变所有的数据。



文章来源: Change timezone component of TIMESTAMP WITH TIMEZONE in Oracle