activerecord – 查找最接近当前日期创建的记录

我想获取其created_at日期最接近当前日期的记录.如何使用活动记录’where子句执行此操作?
你可以找到过去最接近的记录,例如:

Record.where("created_at <= ?", Date.today).order_by("created_at DESC").limit(1)

同样,您可以在将来拥有最接近的记录

Record.where("created_at >= ?", Date.today).order_by("created_at ASC").limit(1)

然后比较哪一个最接近当前日期……

可能有一个解决方案,只需一个请求,但我找不到(如果你使用SQL服务器,有一个方法DATEDIFF可以帮助).

更新:感谢Mischa

如果您确定过去所有created_atare,那么您正在寻找可以写入的最后创建的记录

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))
相关文章
相关标签/搜索