1

今月作成されたレコードを見つけようとしているときに、問題を特定するのに苦労しています。

コントローラーでの私のクエリは次のようになります

@sh = SupportHistory.where('created_at BETWEEN ? AND ?', Time.now.beginning_of_month, DateTime.now.end_of_month)

私のSQLは次のようになります

SELECT `support_histories`.* FROM `support_histories`  WHERE (created_at BETWEEN '2012-10-31 18:30:00' AND '2012-11-30 18:29:59')

問題は、前月からのレコードを見つけることです。それを修正するにはどうすればよいですか?


アップデート

このリンクから問題を把握できました: Timezone with rails 3

コントローラーのクエリは次のようになります

@sh = SupportHistory.where('created_at BETWEEN ? AND ?', DateTime.now.in_time_zone.beginning_of_month, DateTime.now.in_time_zone.end_of_month)

今私のSQLはこのようになります

SELECT `support_histories`.* FROM `support_histories`  WHERE (created_at BETWEEN '2012-11-01 05:
00:00' AND '2012-12-01 05:59:59')

別の質問があります。「in_time_zone」を回避する方法はありますか? またはそれを自動的に実現するには?:)

4

0 に答える 0