以下のクエリを使用して、日ごとに分類されたチェックインの数を取得します。
Checkin.select("date(created_at) as calendar_day, count(*) as total_checkins").where("user_id = ? AND created_at > ?", user.id, 28.days.ago).group("date(created_at)").order("date(created_at)")
出力例:
私が直面している問題は、このクエリが UTC であり、config.time_zone の下の application.rb ファイルで設定した Time.zone (PST) に変換されないことです。上記の例では、最後の 2 つのチェックインは「2012-07-30」の下にある必要があります。
他のクエリでは、この変換が正常に機能することを知っています。たとえば、次のようにします。
Checkin.last.created_at # Returns in PST
したがって、上記のクエリの複雑さについての何かに違いありません。私はそれがselect文である可能性があると推測しています。構成されたタイムゾーンを説明するために上記をどのように書くことができますか?