我有一个created
列的记录,其日期时间以UTC格式存储。
例如,这是存储在一条记录中的日期时间:2014-02-01 00:33:25
但是,如果我检索该记录并将其授予CST,它看起来像这样:
Article.find(1).created.in_time_zone('Central Time (US & Canada)') => Fri, 31 Jan 2014 18:33:25 CST -06:00
就时区而言,这是一个不同的日/月。
我遇到的问题是根据日期查找记录。所以说我想拉出2014年1月31日(CST)的所有记录。我想要包含我的示例记录。
如何在Rails应用中执行此操作?我正在使用Postgres 9.3.1.0运行Rails 4.0.1和Ruby 2.0.0。
答案 0 :(得分:0)
使用AT TIME ZONE
更改时区
Article.where("date(created AT TIME ZONE 'UTC' AT TIME ZONE 'CST') = '01/31/2014'")
答案 1 :(得分:0)
在SO之外得到了一些帮助,得到了我想要的东西。
假设我想查找日期范围内的所有记录,这就是它:
Article.where(created: Date.parse("January 1, 2014").in_time_zone('Central Time (US & Canada)').beginning_of_day.utc..Date.parse("January 31, 2014").in_time_zone('Central Time (US & Canada)').end_of_day.utc)