查找10天前创建的记录

时间:2015-04-20 15:05:08

标签: ruby-on-rails rails-activerecord

我最初的想法是:

user.humans.where("created_at = ?", 10.days.ago)

尽管如此,这似乎是在寻找10天前在调用语句的确切时间创建的记录。我想收集当天创建的记录,无论他们的时间如何。

有人知道这样做的便捷方法吗?如果我需要详细说明,请告诉我。

感谢。

2 个答案:

答案 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中的日期。