2015-11-04 97 views
1

我在我的postgres數據庫中存儲帶時區的時間戳。服務器時區是UTC。所有的時間戳都存儲爲UTC日期時間。在正確的時區從postgres檢索UTC時間戳

現在,我想檢索這些時間戳,但是針對特定時區(例如美國/太平洋)。由於夏令時,正確的時區有時是PDT,有時是PST。所以我不能只運行一個查詢,如select t at time zone 'pdt',因爲這對於pst日期來說是錯誤的。

有沒有辦法在正確的時區從數據庫中提取日期?

回答

2

根據documentation以及TIME ZONE代碼,您還可以指定區域設置。對於你的情況,你可以使用類似的東西:

ds=# SELECT current_setting('TIMEZONE'); 
current_setting 
----------------- 
UTC 
(1 row) 

ds=# SELECT now(); 
       now    
------------------------------- 
2015-11-05 00:35:03.126317+00 
(1 row) 

pm7=# SELECT now() AT TIME ZONE 'America/Los_Angeles'; 
      timezone   
---------------------------- 
2015-11-04 16:35:06.344367 
(1 row) 
+0

啊哈。我沒有意識到我可以使用'America/Los_Angeles'!我會測試一下。謝謝。 –