技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

SQLのタイムゾーンを設定する【Go】

SQLの時刻がUTC時刻になってしまう問題を解決します。

sql, err := sql.Open("mysql", "user:passward@/dbname?parseTime=true&loc=Asia%2FTokyo")


このようにparseTime=trueに併せてlocを指定しないと、例えソースコード側でJST時刻を指定しても、sql接続時にUTC時刻に書き換えられてしまいます。

SQL上でCURRENT_TIMESTAMP()などを指定している場合で、UTC時刻になってしまう時は別の問題です。
下記SQLでtime_zoneを確認ください。

show variables like '%time_zone%';

time_zoneを+09:00に更新することで、JST時刻と合わせることができます。

GCPGoogle Cloud SQLを利用している場合は、下記のマニュアルを確認ください。

Configuring Database Flags  |  Cloud SQL for MySQL  |  Google Cloud