我想获取包含 created_at
的记录最接近当前日期的日期。我如何使用事件记录来做到这一点 where
条款?
最佳答案
您可以使用以下内容找到过去最接近的记录:
Record.where("created_at <= ?", Date.today).order_by("created_at DESC").limit(1)
同样,你可以在 future 拥有最近的记录
Record.where("created_at >= ?", Date.today).order_by("created_at ASC").limit(1)
然后比较哪个最接近当前日期......
可能有一个解决方案可以通过单个请求来完成,但我找不到方法(如果您使用的是 SQL 服务器,则有一种方法 DATEDIFF 可以提供帮助)。
更新 : 感谢米莎
如果您确定所有
created_at
在过去,您正在寻找最后创建的记录,可以写入Record.order("created_at").last
更新
要获取与最后一条记录相同的日期创建的所有记录:
last_record_date = Record.max(:created_at)
Record.where(:created_at => (last_record_date.at_beginning_of_day)..(last_record_date.end_of_day))
关于activerecord - 查找最接近当前日期创建的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12294272/