修改RDS PostgreSQL实例的时区配置

如果RDS PostgreSQL实例的时区设置与业务逻辑需要的时区不一致,或者应用程序需要处理多个时区的数据,则需要修改数据库实例的时区配置,以确保数据在不同时区之间的转换和展示正确无误。

前提条件

RDS PostgreSQL云盘版实例。

注意事项

  • SET timezone语句仅当前会话生效,无法持久化,建议通过设置实例参数功能进行修改。

  • 如果您需要为某个数据库单独设置时区,请使用ALTER DATABASE <数据库名称> SET timezone TO '<时区名>';语句进行修改。

    说明

    如果需要恢复某个数据库至系统默认时区,请使用ALTER DATABASE <数据库名称> SET timezone TO DEFAULT;语句恢复默认。

  • PostgreSQL支持TIMESTAMPTIMESTAMPTZ两种存储时间戳的数据类型,请您根据实际业务需求,选择不同数据类型:

    • TIMESTAMP:该数据类型会以UTC时间存储日期和时间,不会存储时区信息。如果您参考本文档修改时区后,该类型的查询结果不会变化。

    • TIMESTAMPTZ:该数据类型会存储日期、时间以及时区信息。当存储时间数据时,会将时间转换为UTC时间存储到表中,当查询时间数据时,会将UTC时间转换为当前实例或数据库所设置的时区对应的时间。如果您参考本文档修改时区后,该类型的查询结果会根据时区变化而自动变化。

修改时区

RDS PostgreSQL云盘版实例支持修改配置文件中的时区设置,您可以在控制台的参数设置页面修改参数timezone。操作详情请参见设置实例参数

timezone

说明

RDS PostgreSQL本地盘实例暂不支持timezone参数。

查看支持的时区

您可以使用如下命令查看支持的时区:

SELECT name,utc_offset FROM pg_timezone_names;
说明

关于pg_timezone_names表的更多信息,请参见pg_timezone_names

查看支持时区

相关文档