【发布时间】:2014-01-15 17:14:32
【问题描述】:
我有一个added_at 类型的timestamp without time zone 列。我希望它的默认值是当前日期时间但没有时区。函数now() 也返回一个时区。
我该如何解决这个问题?
【问题讨论】:
-
当前日期时间在哪里?在你的办公桌上?在服务器?在您用户的计算机上?没有时区的日期时间没有多大意义。
-
@MikeW 在它运行的环境中。
-
考虑使用
with timestamp,尤其是当您的代码在任何使用夏令时的地方运行时。或者将时间保存为 UTC,而不是本地时区。您始终可以选择要在哪个时区显示数据。 -
@some,和
with timezone有区别吗? -
你误会
timestamp with time zone。它根本不带时区。它只是绝对 UTC 时间,在TimeZone会话变量中转换为本地时间/从本地时间转换。只需使用timestamp with time zone;这几乎总是正确的选择。
标签: postgresql timestamp postgresql-9.2