2015年1月30日 星期五

MySQL CONVERT_TZ return NULL

在 local dev 環境想要 reproduce 一個 bug 的時候,
卻發現在我的環境 MySQL store procedure 的行為和 production 機器上的不一樣

原本以為是 store procedure 的邏輯有問題
最後發現原來是 CONVERT_TZ() 搞的鬼...

因為我的 local dev 環境是自己從零開始 setup 的
沒想到 CONVERT_TZ 這個 MySQL 內建的 function 需要一些 initial data
不然只要丟給他轉換的日期時間都會回傳 NULL....

解決方法就是
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
這樣就會把 zoneinfo 轉成 CONVERT_TZ 所需要的資料
我的 local dev 環境的行為就恢復正常啦~



Reference:
http://stackoverflow.com/questions/14454304/convert-tz-returns-null

沒有留言:

張貼留言