che*_*ell 5 activerecord ruby-on-rails-3.2
我想获得created_at日期最接近当前日期的记录.如何使用活动记录where条款执行此操作?
Bal*_*ick 10
你可以找到过去最接近的记录,例如:
Record.where("created_at <= ?", Date.today).order_by("created_at DESC").limit(1)
Run Code Online (Sandbox Code Playgroud)
同样,您可以在将来拥有最接近的记录
Record.where("created_at >= ?", Date.today).order_by("created_at ASC").limit(1)
Run Code Online (Sandbox Code Playgroud)
然后比较哪一个最接近当前日期......
可能有一个解决方案,只需一个请求,但我找不到(如果你使用SQL服务器,有一个方法DATEDIFF可以帮助).
更新:感谢Mischa
如果您确定所有这些created_at都在过去,那么您正在寻找可以写入的最后创建的记录
Record.order("created_at").last
Run Code Online (Sandbox Code Playgroud)
更新
要创建所有记录的日期与最后一条记录相同:
last_record_date = Record.max(:created_at)
Record.where(:created_at => (last_record_date.at_beginning_of_day)..(last_record_date.end_of_day))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3657 次 |
| 最近记录: |