1

ユーザーモデルでレコードを検索しています。検索属性 from_date、to_date は、created_at 列に基づいてユーザー モデル内のレコードを検索するために使用されます。

User model : (id, name, created_at)

データベースに次のレコードがあります。

id, name, created_at
 1   jd1    2013-09-04 18:01:57
 2   jd2    2013-09-05 19:01:57
 3   jd3    2013-09-05 23:01:57

"2013-09-04".to_date(from_date) と "2013-09-05".to_date(to_date) の間で検索すると、最初の 2 つのレコードのみが返されます。最後の 1 つは返されていません。to_date を「2013-09-06」に変更すると、最後のレコードが表示されます。これは私が使用したクエリです。

date_range = from_date ... to_date + 1.day
scope :by_date, ->(date_range) {where(created_at: date_range)}

User.by_date(date_range)

クエリの何が問題になっていますか? それに夏時間帯の問題があると思います。

4

1 に答える 1