postgresql - PG SQL 10 将默认时区设置为 UTC

标签 postgresql timezone postgresql-10

我需要更改数据库配置以使用 UTC 作为托管在 AWS RDS 上的 PostgreSQL10 实例的默认设置。我希望它在数据库级别永久更改,并且无论如何都不会恢复到任何其他时区。

我试过运行它,但它显示 0 个更新行:

ALTER DATABASE <my-db> SET timezone='UTC'; 

我已经尝试将自定义参数组附加到 RDS 中的数据库并像这样修改条目(之后也重新启动):

enter image description here

无论我做什么,当我运行 select * from pg_settings where name = 'TimeZone';SHOW timezone它显示“美国/芝加哥”。

这看起来应该很容易做到,但事实证明这是一个挑战。

最佳答案

如果您想以 UTC 格式存储您的时间戳,并且总是希望数据库也以 UTC 格式将数据发送到客户端,您应该使用数据类型timestamp without time zone,这不会为您执行任何时区处理。这将是最简单的解决方案。

要转换数据,您可以这样进行:

SET timezone = 'UTC';
ALTER TABLE mytable ALTER timestampcol TYPE timestamp without time zone;

关于postgresql - PG SQL 10 将默认时区设置为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54616446/

相关文章:

linux - 关于linux服务器时区

postgresql - 无法使用 Postgres FDW 访问外表

postgresql - Postgres : Optimisation for query "WHERE id IN (...)"

java - 如何处理查询中没有值且数据类型为整数的字段返回的空值

java - 方解石 : table not found when using Postgres

java - 如何在 Java 中获取英国夏令时偏移量 (BST)

sql - 如何在 PostgreSQL 中限制一个 float

postgresql - pg_dump 并加载带有 UUID 列的表 PostgreSQL

使用 sqlite 数据库部署 Django 应用程序

swift - 在 Swift 4 中获得时间