我有一个后台工作,每天晚上在午夜运行。我需要获取活动记录模型的所有新记录,其中updated_at是> =前一个午夜(UTC)和当天的午夜UTC。
这样做的最佳方式是什么?
所以我需要这样的东西:
let answer =
getSomeIntegerValue ()
|> addition1 12 // Add 12 to result
但我不确定如何纠缠MyRecord.where(updated_at: prior_utc_midnight..tonight_utc_midnight)
/ Time
和Date
类来做我想做的事。
谢谢!
答案 0 :(得分:1)
您可以使用beginning_of_day
和end_of_day
方法。
这些助手会给你午夜时间
MyRecord.where(created_at: Date.today.beginning_of_day..Date.today.end_of_day)
#=> SELECT "my_records".* FROM "my_records" WHERE ("my_records"."created_at" BETWEEN '2017-02-24 00:00:00.000000' AND '2017-02-24 23:59:59.999999')
另外,看看这些方法
答案 1 :(得分:-1)
MyRecord.where("updated_at >= '#{Date.today}' and updated_at < '#{Date.today.next_day}'")
唯一要考虑的是表中数据的时区。如果那也是UTC,则此查询应该为您提供您要求的结果。