1

我有一个查询到我的数据库,它返回一列日期。此查询的输出在 psql 中如下所示:

询问:

SELECT (by_event.event_date AT TIME ZONE 'UTC')::DATE as event_date from events as by_event;

输出:

event_date   
------------
 2012-11-15 
 2012-11-16
 2012-11-17

我用这个在 Rails 中运行我的 SQL 查询:

results = ActiveRecord::Base.connection.execute(sql) 

results.each do |result|
  puts result.inspect
end

不幸的是,这会打印出来:

[{\"event_date\"=>\"2012-11-16\"}, {...}]

所有日期都比应有的日期提前一天!

显然这是时区相关的,但我不知道如何解决它。如何让 Rails 停止更新日期?

4

1 回答 1

1

对于未来的人,这是我为解决此问题所做的:

SELECT  ((by_event.event_date) AT TIME ZONE 'America/New_York')::DATE as event_date,

丑陋,但它的工作原理。

于 2013-10-29T17:51:44.267 回答