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