我有一个查询今天的电话的范围。根据范围,我使用它来计算今天的呼叫量。
我的日期以 UTC 格式存储,但 rails 会转换为我的本地时区。我要做的是找到今天 00:00 到 23:59 之间的所有电话。
范围:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
irb 输出:(由于 UTC 而捕获的调用)
irb(main):010:0> Call.last.transfer_date
Call Load (0.9ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> Sun, 07 Oct 2012 19:45:00 CDT -05:00
irb(main):011:0>
irb(main):011:0> Call.last.transfer_date.utc
Call Load (1.3ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> 2012-10-08 00:45:00 UTC
我试图弄清楚如何只查询今天 00:00 到 23:59 之间的电话。到目前为止,尝试使用和不使用 UTC、区域等的范围都行不通。它不断根据 UTC 拉取范围,其中包括昨天的调用(如果它是使用本地时区格式化的,则为昨天)。
如何在两次之间查询以获得正确的输出?我有点迷失在这里。