在處理時間戳的過程中,我們經常遇到時區轉換的問題,特別是當我們需要把UTC時間(協調世界時)轉換成本地時間時。
在MySQL中,可以使用以下函數將UTC時間轉換成本地時間:
SELECT CONVERT_TZ('2022-10-01 12:00:00','+00:00','+08:00');
上述語句將UTC時間 '2022-10-01 12:00:00' 轉換成北京時間。
然而,我們有時會發現,使用以上函數轉換后的時間會比實際時間早12小時。
這是因為MySQL默認使用系統時區,而且該時區可能是世界標準時間(UTC),因此在進行時區轉換時就會出現上述問題。
為了解決該問題,我們需要在MySQL的配置文件(my.cnf)中添加以下內容:
[mysqld] default-time-zone = '+08:00'
以上語句將MySQL的默認時區設置為東八區(北京時間),從而避免了上述問題。
需要注意的是,添加上述配置后需要重啟MySQL服務生效。