如何快速简便地更正在错误时区中意外输入的时区TIMESTAMP WITH TIME ZONE
字段?
在我的案例中,以下记录被错误地输入到UTC而不是美国/太平洋:
t0 | t1 | what
------------------------+------------------------+---------------
2011-06-01 13:00:00+00 | 2011-06-01 13:10:00+00 | recalibrating
2011-06-01 13:10:00+00 | 2011-06-01 13:45:00+00 | verifying
2011-06-01 13:45:00+00 | 2011-06-01 13:55:00+00 | FAULT
幸运的是,没有一个错误的记录跨越夏令时界限,所以2点UTC可以简单地更正为2点太平洋。
最佳答案
UPDATE <table> SET <timestamptz_field> = (<timestamptz_field> AT TIME ZONE 'UTC') AT TIME ZONE '<correct_time_zone>';