Cloud SQL のタイムゾーンを変える
SQLの current_time とか now() はサーバ側のタイムゾーン設定に依存してるのでCloud SQLなどではタイムゾーンが日本と違ったりすることがある。
Cloud SQLも例にもれずデフォルトだとこういう設定になっている
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | UTC |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.34 sec)
中身はMySQLだが設定ファイルを直接いじったりは出来ないのでCloud SQLの管理画面からフラグを操作すればいい。
詳しくはここ。これが公式ドキュメント。
Configuring Cloud SQL Flags | Cloud SQL for MySQL | Google Cloud Platform
タイムゾーンはdefault_time_zone
を +09:00 にしてあげればJSTになる。
ちなみに変更するとこんな感じになる。
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | UTC |
| time_zone | +09:00 |
+------------------+--------+
2 rows in set (0.15 sec)
ほかにも設定関係はここで変更してあげればいいっぽい