這是MySQL 5實力養成暨評量裡的5-07.『哪一個函式可將一個時間作時區的轉換?』
答案:(C) CONVERT_TZ()
函數的名稱其實很直覺,但是有些系統會把直覺的英文再縮寫,這一個CONVERT_TZ的函式就是如此,所以ㄚ琪不會只好猜CONVERT_TIMEZONE了,結果當然就是倒扣一分。有關MySQL 日期和時間函數我們已經提過了,就不再複製贅述,僅專注在CONVERT_TZ的使用即可。
CONVERT_TZ(dt,from_tz,to_tz)
CONVERT_TZ() 將時間日期值dt 從from_tz 給出的時區轉到to_tz給出的時區,然後返回結果值。關於可能指定的時區的詳細論述,請參見5.10.8節,「MySQL伺服器時區支援」。若自變數無效,則這個函數會返回 NULL。
在從若from_tz 到UTC的轉化過程中,該值超出 TIMESTAMP 類型的被支援範圍,那麼轉化不會發生。關於TIMESTAMP 範圍的論述,請參見11.1.2節,「日期和時間類型概述」。
mysql> SELECT CONVERT_TZ(’2004-01-01 12:00:00′,’GMT’,’MET’);
-> ’2004-01-01 13:00:00′
mysql> SELECT CONVERT_TZ(’2004-01-01 12:00:00′,’+00:00′,’+10:00′);
-> ’2004-01-01 22:00:00′
註釋:若要使用諸如 ’MET’或 ’Europe/Moscow’之類的指定時間區,首先要設置正確的時區資料表。詳細說明見5.10.8節,「MySQL伺服器時區支援」。