在 local dev 環境想要 reproduce 一個 bug 的時候,
卻發現在我的環境 MySQL store procedure 的行為和 production 機器上的不一樣
原本以為是 store procedure 的邏輯有問題
最後發現原來是 CONVERT_TZ() 搞的鬼...
因為我的 local dev 環境是自己從零開始 setup 的
沒想到 CONVERT_TZ 這個 MySQL 內建的 function 需要一些 initial data
不然只要丟給他轉換的日期時間都會回傳 NULL....
解決方法就是
我的 local dev 環境的行為就恢復正常啦~
Reference:
http://stackoverflow.com/questions/14454304/convert-tz-returns-null
卻發現在我的環境 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
留言
張貼留言