2013年7月25日木曜日

AWS RDS MySQLのtime zoneはUTC

AWSのRDSでMySQLを使用しています。

現在時刻を条件にクエリをしようとしてふと、タイムゾーンでどうなってたっけ?と。
調べてみるとdefault_time_zoneはUTCで、変更できないようです。

でも、セッションごとにタイムゾーンを変更すれば良くて、以下をクエリの前に実行します。

SET SESSION time_zone="Asia/Tokyo";

cronで実行しているSQLのバッチ処理なんかはこれでいいんですが、CakePHPの場合はどうしようかなと。
調べるとデータベース接続時に必ず上記を実行するようにすればよさそうですが、、面倒そうなのとCakePHP2.x系の情報がさっと見つからなかったので、PHP側のdate()で日付をSQLにセットしました。手抜きですんません。
PHPの方はタイムゾーンを設定してるので現在時刻はAsia/Tokyoになってます。

 時刻をシビアに使用する場合はWebサーバーとDBサーバーのずれでややこしいことになったりもありますが(実際に経験あり・・・)、AWSなのでずれもないだろうというのと、システム的にも日ごとぐらいの単位でしか指定しないので大丈夫かなという判断です。

(いいかげんですみません・・・)

0 件のコメント:

コメントを投稿