【发布时间】:2014-01-22 20:01:49
【问题描述】:
我有一个场景,我得到一个时间戳,我需要在该时间戳中搜索该日期的所有预订。时间戳在用户各自的时区中,数据库中的所有记录都存储在 UTC 中。所以很自然我需要将该时间戳转换回UTC然后搜索。
这是我正在做的事情:
Booking.where("date_time >= '#{DateTime.parse(timestamp).in_time_zone('UTC').beginning_of_day}' and date_time <= '#{DateTime.parse(timestamp).in_time_zone('UTC').end_of_day}'")
这基本上意味着获取从一天开始到结束的所有预订
但是,当我使用以下查询时,它会给我一个不同的结果:
Booking.where("date_time >= '#{DateTime.parse(timestamp).beginning_of_day.in_time_zone('UTC')}' and date_time <= '#{DateTime.parse(timestamp).end_of_day.in_time_zone('UTC')}'")
我想知道在我的用例中使用哪一个实际上是正确的语句,我希望能在这里提供一些输入。
【问题讨论】:
标签: ruby-on-rails ruby timezone rails-activerecord activesupport