我在查询时遇到问题,因为午夜转换未按预期工作。
time = Date.today.midnight #=> Mon, 15 Jul 2013 00:00:00 BRT -03:00
time.class #=> ActiveSupport::TimeWithZone
condition = Task.arel_table[:scheduled_to].gt(time)
condition.to_sql #=> "`tasks`.`scheduled_to` > '2013-07-15 03:00:00'"
我期待生成的 sql 是
`tasks`.`scheduled_to` > '2013-07-15 00:00:00'"
我的时区是 GMT -3。如果我更改时区使其与 GMT -5 匹配,则生成的 sql 是
condition.to_sql #=> "`tasks`.`scheduled_to` > '2013-07-15 05:00:00'"
- 导轨 4.0.0
- 红宝石 2.0.0p247
有什么方法可以忽略时区,使查询的行为符合预期?