2016-09-26 52 views

回答

0

只要此更改命中IANA timezone library,它將被包含在PostgreSQL中,並與下一個minor release。這已發生在提交a03339aef2,所以更改將在9.6.1,9.5.5,9.4.10,9.3.15,9.2.19和9.1.24中進行。

timestamp with time zone類型的數據不會受到影響,因爲它們在內部存儲在UTC中。如果您的客戶端時區設置爲Turkey或同等,則數據將以(新)正確的時區偏移顯示。

類型timestamp without time zone的數據將保持不變,因此它們不會在顯示時自動切換到新的時區偏移。但無論如何,使用該數據類型幾乎總是一個錯誤。

1

postgresql將zoneinfo database用於時區計算。數據庫的2周前發佈的2016g版本,includes an update正確處理土耳其的情況。現在,您必須等待postgresql開發人員將最新版本的zoneinfo引入postgresql,然後發佈新版本。您可以檢查什麼的Postgres認爲土耳其的時區,如下所示:

$ SET TIME ZONE 'Asia/Istanbul'; 
$ SELECT extract(timezone FROM '2016-06-01'::timestamptz), extract(timezone FROM '2016-12-01'::timestamptz); 
date_part | date_part 
-----------+----------- 
    10800 |  7200 
(1 row) 

正如你看到的,我的系統(PostgreSQL的9.5.4),它仍然認爲土耳其將切換到+2冬天偏移。