【问题标题】:How to update PostgreSQL timezone database如何更新 PostgreSQL 时区数据库
【发布时间】:2025-12-19 13:40:11
【问题描述】:

我在服务器上使用 PostgreSQL 版本 9.5。随着时间的推移,时区数据库显然已经过时了。

例如,根据icann mailing list,俄罗斯伏尔加格勒从+3 变为+4。但是,在我的数据库中,它看起来仍与俄罗斯莫斯科处于同一时区:

SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'Europe/Moscow';
        timezone        
------------------------
 2001-02-16 20:38:40+03


SELECT TIMESTAMP '2001-02-16 20:38:40' AT TIME ZONE 'Europe/Volgograd';
        timezone        
------------------------
 2001-02-16 20:38:40+03

有没有办法只更新时区数据库而不更新或重新安装整个 PostgreSQL?

【问题讨论】:

    标签: postgresql timezone


    【解决方案1】:

    例如,您可以为数据库设置时区:

    alter DATABASE your_dabase  set timezone  = '+N' --number of timezone 
    

    或者可以使用alter system来更改服务器中的所有数据库:

    alter system set timezone to '+N'; --number of timezone, reload configuration 
    

    问候

    【讨论】:

    • 如果我理解正确,它会设置数据库的默认时区。我对所有数据库的时区都很满意,但问题是不同的。时区偏移随时间而变化。默认情况下(据我所知)有关这些偏移量的数据是硬编码的,并且只能在整个 PostgreSQL 应用程序更新期间进行更新。