ActiveRecord使ってMySQLの日付関数呼び出す時の注意
AWS+RDSでRailsを使ったりしてると、RDSのタイムゾーンがUTCから変更できない関係で、けっこう時間の扱いに悩みます。
大抵の場合、application.rbに
とかやってお茶を濁すわけですが。config.time_zone = 'Tokyo'
config.time_zoneはあくまでアプリケーション側の時間の扱いなので、DBのタイムゾーンを帰るわけではありません。
なので、date関数とか使うとUTC扱いになって困っちゃったりするわけです。
そういう場合はCONVERT_TZで無理くりJSTにします。
User.where("DATE(CONVERT_TZ(regist_day,\"+00:00\",\"+09:00\"))