我在供應商的用戶端軟體查看各條記錄的時間都是正常的,但我直接在後台使用SQLyog查閱,發現自己查詢出來的時間欄位總是慢了8小時,請問是什麼問題呢?
我使用以下語句,出來格式是 2013-05-25th 01:37:08,其實該條記錄正確的時間是 2013-05-25th 09:37:08
SELECT DATE_FORMAT(FROM_UNIXTIME(`table`.`time`),'%Y-%m-%D %h:%i:%s') AS `theTime` FROM table
回複討論(解決方案)
與你伺服器的時區設定有關
但供應商的用戶端軟體看是沒有問題的。
如果確實沒有辦法,在mysql裡面怎麼把目前時間 加上 8小時,然後再把 int類型的時間欄位以 2013-05-25th 01:37:08 的格式展示出來。
MySQL伺服器有幾個時區設定:
· 系統時區。伺服器啟動時便試圖確定主機的時區,用它來設定system_time_zone系統變數。
· 伺服器當前的時區。全域系統變數time_zone表示伺服器當前使用的時區。初使值為'SYSTEM',說明伺服器時區與系統時區相同。可以用--default-time-zone=timez選項顯式指定初使值。如果你有SUPER 許可權,可以用下面的語句在運行時設定全域變數值:
· mysql> SET GLOBAL time_zone = timezone;
· 每個串連的時區。每個用戶端串連有自己的時區設定,用會話time_zone變數給出。其初使值與全域變數time_zone相同,但可以用下面的語句重設:
· mysql> SET time_zone = timezone;
可以用下面的方法查詢當前的全域變數值和每個串連的時區:
mysql> SELECT @@global.time_zone, @@session.time_zone;
timezone值為字串,表示UTC的位移量,例如'+10:00'或'-6:00'。如果已經建立並裝入mysql資料庫中的時區相關表,你還可以使用命名的時區,例如'Europe/Helsinki'、'US/Eastern'或'MET'。值'SYSTEM'說明該時區應與系統時區相同。時區名對大小寫不敏感。
SELECT @@global.time_zone, @@session.time_zone
兩個欄位都是顯示 system