我正在构建一个Rails 4.1.4 Web应用程序,我想按特定日期进行搜索。 当我搜索" 2014-07-01"我找不到什么,但是当我搜索" 2014-07-01 10:00:00"我发现因为这是数据库中的确切日期(随时间)。
这是我的代码:
@timereports = Timereport.where(" reported_at =?",Time.parse(params [:date]))
如何只匹配日期并忽略时间部分?
答案 0 :(得分:1)
日期很棘手,你必须比较正确的类型。其中一个是date
,另一个是datetime
。如果您只关心在特定日期而不是特定时间查找记录,则需要将db字段转换为日期:
@timereports = Timereport.where("DATE(reported_at) = ?", Date.parse(params[:date]))
这就是将数据库字段reported_at
转换为DATE
(例如“2014-07-01”)并将其与Date.parse(params[:date])
进行比较,现在也是“2014-07” -01" 。