2
在处理Postgres中的时间戳时,我花了很多时间阅读“最佳实践”,并且得到了许多相互矛盾的答案。当使用TIMESTAMPTZ
数据类型时,我认为NOW()
和NOW() at time zone 'utc'
会导致在数据库中插入相同的数据。许多在线评论都表明,内部时区并未实际存储,而是转换为UTC。对TIMESTAMPTZ内部转换感到困惑
为什么会这样,当我运行以下时,我不会得到重复的结果?
CREATE TABLE testtime(
mytime TIMESTAMPTZ,
descr VARCHAR
);
INSERT INTO testtime VALUES
(NOW(), 'Now at NZST'),
(NOW() AT TIME ZONE 'utc', 'Now at UTC');
SELECT *
FROM testtime;
结果:
2016-02-17 02:08:30.845071 Now at NZST
2016-02-16 13:08:30.845071 Now at UTC
绝对精彩的解释和往常一样。对此,我真的非常感激。谢谢。 – Sam