仅搜索日期

时间:2014-07-31 00:19:03

标签: ruby-on-rails-4

我正在构建一个Rails 4.1.4 Web应用程序,我想按特定日期进行搜索。 当我搜索" 2014-07-01"我找不到什么,但是当我搜索" 2014-07-01 10:00:00"我发现因为这是数据库中的确切日期(随时间)。

这是我的代码:

@timereports = Timereport.where(" reported_at =?",Time.parse(params [:date]))

如何只匹配日期并忽略时间部分?

1 个答案:

答案 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" 。