在倫敦的價值觀,我們目前領先UTC的1小時。所以 - 如果我把你的時區沒有時間戳,並說它是在UTC,我會打印我的當地時區。
richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
timezone
------------------------
2015-10-24 17:38:46+01
(1 row)
但是,你想要「美國東部時間」,似乎在美洲的某個地方,通過返回的價值判斷。如果您願意,可以將表達式包裝在一個小小的SQL函數中。
richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
timezone
---------------------
2015-10-24 11:38:46
(1 row)
編輯:如何做一個查詢
SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;
你可能會想要得到SQL入門書,如果這樣的事情導致您的問題。
旁註:你可能想使用''美國/ New_York''(從[IANA時區數據庫(https://en.wikipedia.org/wiki/ Tz_database))作爲您的時區,而不是「EST」。三個字母的縮寫是不精確的(你真的是指UTC-0400,還是你想在夏天期間使用UTC-0300?),並且經常在多個國家甚至一個國家重複播放(阿拉斯加和波多黎各的時區通常都是都標有「AST」) –