PostgreSQL 9
我有一个超过500K行的表,我想更新一些 “没有时区的时间戳”字段。
UPDATE order_update
SET last_attempt_ts = (last_attempt_ts AT TIME ZONE 'EST') AT TIME ZONE 'UTC';
但是这个sql很慢,有更好更快的方法吗?
答案 0 :(得分:0)
如果我理解你要做什么,你将时间戳从EST转换为UTC(即使该字段没有你想要调整时间的时区)
你试过这个吗?:
UPDATE order_update
SET last_attempt_ts = last_attempt_ts + interval '5 hour';
运行后执行回滚
回滚;
因为EST具有夏令时,这意味着几个月你需要添加4小时或5个,所以你实际上需要运行2个查询以产生相同的效果
希望它有所帮助!