相同日期的日期比较

时间:2011-07-09 19:22:15

标签: ruby-on-rails

我的问题是当用户选择相同的日期时,下面的查询返回空数组。相反,当用户选择相同的日期时,它必须显示在该日期创建的用户。任何帮助将不胜感激。

User.where("created_at >= ? and created_at =< ?", params[:from].to_date, params[:to].to_date)

2 个答案:

答案 0 :(得分:3)

实现这一目标的另一种方法:

PARAMS [:从] .to_date.beginning_of_day 和params [:to] .to_date.end_of_day。这将涵盖一整天

答案 1 :(得分:1)

您可能正在使用DATETIME数据库列。问题是用户选择“from”作为(例如)2011-07-09,并且对于比较,数据库将其转换为“2011-07-09 00:00:00”并且如果用户选择同一天两次,可能没有结果(除非它们是在“2011-07-09 00:00:00”完全创建的)。要解决这个问题,请执行

to_date = params[to].to_date + 1.day

在进行实际的数据库搜索调用之前。并使用to_date而不是params [:to] .to_date