我最初的想法是:
user.humans.where("created_at = ?", 10.days.ago)
尽管如此,这似乎是在寻找10天前在调用语句的确切时间创建的记录。我想收集当天创建的记录,无论他们的时间如何。
有人知道这样做的便捷方法吗?如果我需要详细说明,请告诉我。
感谢。
答案 0 :(得分:7)
你可能想在这里使用一个范围,因为我认为这是一个日期时间列。
User.humans.where("? <= created_at AND created_at <= ?", 10.days.ago.beginning_of_day, 10.days.ago.end_of_day)
您还要确保自己设置Rails应用程序的时区,以便明确您认为哪个时间段是第10天。
答案 1 :(得分:1)
您使用的DBMS都有将日期时间转换为日期的方法。然后,您应该将其与ruby中的日期进行比较。例如,如果您的DBMS是MySQL,您可以说
user.humans.where("date(created_at) = ?", 10.days.ago.to_date)
如果您没有使用MySQL,那么您应该能够将日期时间谷歌转换为您选择的DBMS中的日期。