我有一个存储在一些数据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