土耳其继续从2016年开始夏令时 - 对Postgresql的影响

时间:2016-09-26 10:37:54

标签: postgresql timezone dst

对Postgresql数据库有什么影响?作业,日期列数据会受到影响吗?

2 个答案:

答案 0 :(得分:1)

postgresql使用zoneinfo database进行时区计算。数据库的2016g版本于2周前发布,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偏移量。

答案 1 :(得分:0)

只要此更改到达IANA timezone library,它就会包含在PostgreSQL中,并包含下一个minor release。这发生在commit 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的数据将保持不变,因此在显示时它们不会自动转移到新的时区偏移。但无论如何,使用该数据类型几乎总是错误的。