我的问题是当用户选择相同的日期时,下面的查询返回空数组。相反,当用户选择相同的日期时,它必须显示在该日期创建的用户。任何帮助将不胜感激。
User.where("created_at >= ? and created_at =< ?", params[:from].to_date, params[:to].to_date)
答案 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