当我跑步时:
psql great_dev -c 'show timezone'
返回以下内容:
TimeZone
------------
US/Eastern
(1 row)
我希望时区是EST,所以我认为这是正确的。问题是每当我运行某种数据库操作(IE update_attributes,save等)时,时间戳都是UTC,如下所示:
SQL (0.6ms) UPDATE "schedules" SET "accepted" = $1, "updated_at" = $2 WHERE
"schedules"."id" = 46 [["accepted", "only_freelancer"],
["updated_at", Mon, 02 Dec 2013 16:51:07 UTC +00:00]]
我开始实施几项后台工作,我必须了解Postgres的时区。
答案 0 :(得分:0)
Postgres中的默认timestamp
类型为timestamp without time zone
要解决此问题,请使用数据类型 timestamp with time zone
。
或者使用设置为UTC的时区运行数据库并使用timestamp [without time zone]
。
请注意,会话的时区设置与Postgres实际为您的查询返回的内容相关。
此相关答案提供了您可能需要的所有详细信息:
Ignoring timezones altogether in Rails and PostgreSQL