【发布时间】:2017-07-28 07:35:57
【问题描述】:
我有一个时间戳列“submitted_on”,默认为 now()。 我已将 heroku TZ 设置为我的区域,并添加了一个具有相同时区的 php 用户 ini。
但数据库仍在使用 UTC 时区。当我运行这个 sql 时,我看到了这个:
show timezone;
有解决办法吗?或者这就是heroku数据库的工作方式?我也在使用免费的测功机。
【问题讨论】:
标签: postgresql heroku
我有一个时间戳列“submitted_on”,默认为 now()。 我已将 heroku TZ 设置为我的区域,并添加了一个具有相同时区的 php 用户 ini。
但数据库仍在使用 UTC 时区。当我运行这个 sql 时,我看到了这个:
show timezone;
有解决办法吗?或者这就是heroku数据库的工作方式?我也在使用免费的测功机。
【问题讨论】:
标签: postgresql heroku
设置TZ config var 只会影响 Dynos 环境,因为数据库位于不同的机器上,所以没有效果。
一般来说,您应该始终保持服务器时钟在 UTC 上运行,以 UTC 存储所有时间,并在您的应用程序框架中执行任何时区/区域设置更改。
【讨论】:
参数timezone是在创建数据库集群时确定的。
您可以更改postgresql.conf 中的值,也可以使用ALTER SYSTEM 作为超级用户来更改值。
我不知道 Heroku 是否允许您使用这些选项中的任何一个。
【讨论】: