我有一些数据存储在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中是否有任何方式来改变它?
答案 0 :(得分:7)
您真的需要更改存储在数据库中的数据吗?通常,只需转换到不同的时区进行显示就足够了,即
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'
更改所有数据。