私のデータベースには、レコードの作成日を保存する属性があります。保存された日付の形式は次のとおりです。
2013/06/18 19:03:24
日付だけを検索する必要があり、時間には興味がありません
このモードで試してみましたが、うまくいきません:
Report.find_all_by_created_at("2013-06-18").each do |r| %>
[...]
end
私のデータベースには、レコードの作成日を保存する属性があります。保存された日付の形式は次のとおりです。
2013/06/18 19:03:24
日付だけを検索する必要があり、時間には興味がありません
このモードで試してみましたが、うまくいきません:
Report.find_all_by_created_at("2013-06-18").each do |r| %>
[...]
end
次の場所に範囲を渡すことができます。
date = Date.new(2013,6,18)
Report.where(created_at: date.beginning_of_day..date.end_of_day)
これにより、次のような SQL ステートメントが作成されます。
SELECT `reports`.* FROM `reports` WHERE `reports`.`created_at` BETWEEN '2013-06-18 00:00:00' AND '2013-06-18 23:59:59'
として収集しているようでDateTime
、メソッドを使用して検索可能なオブジェクトto_date()
に変更できる可能性があります。Date
http://api.rubyonrails.org/classes/DateTime.html#method-i-to_date
おそらく最善の解決策ではありませんが、次のことができます。
Report.where("created_at >= ? and created_at < ?","2013-06-18","2013,06-19").each do |r|
[...]
end
SQLクエリでマッチャーのように使用できます
Report.where("created_at LIKE '2013-06-18%'")
またはSqueel
、ルビーのような構文でSQL関数を呼び出すことができる宝石を見て、クエリを生成するものを使用できます
WHERE cast(created_at as date) = '2013-06-18'