2016-10-11 155 views
2

我有一個PostgreSQL數據庫,其中包含許多可在悉尼/澳大利亞當地時間存儲時間戳的表格。另外,我有一張存儲UTC時間戳的表格。這不能改變。postgresql:如何將UTC時間戳轉換爲悉尼時間

我的問題是 - 爲了得到本地悉尼/澳大利亞時間的UTC時間戳,我需要使用哪些SQL操作?

我意識到悉尼有夏令時期的事實,而且我不知道如何編寫我的SQL,以便轉換始終正確 - 無論夏時制是否採用時間戳。

請指教。

感謝, 阿米特

回答

4

使用at time zone像:

pond93=# select now() at time zone 'AEDT'; 
-[ RECORD 1 ]------------------------ 
timezone | 2016-10-11 08:20:39.067256 

Time: 2.439 ms 

有一個outdated list of timezones例如 或只使用pg_timezone_names

pond93=# select * from pg_timezone_names() where name ilike '%sydney%'; 
-[ RECORD 1 ]---------------------- 
name  | posix/Australia/Sydney 
abbrev  | AEDT 
utc_offset | 11:00:00 
is_dst  | t 
-[ RECORD 2 ]---------------------- 
name  | Australia/Sydney 
abbrev  | AEDT 
utc_offset | 11:00:00 
is_dst  | t 

Time: 171.649 ms 
+0

因此,假設我有2個以下記錄: – Aamit

+0

如果您有pre 9.0版本(其中包含'pg_timezone_names'),則使用Web鏈接以上 –

相關問題