2016-01-14 22 views
0

我已經改變了MariaDB的配置文件恢復,並重新啓動MariaDB的設置時區「+5:30」SELECT查詢,在格林尼治標準時間,而不是在設定的時區

而且我現在的時間區「+5:30」此查詢

SHOW VARIABLES LIKE 'time_zone'; 

當NOW()選擇,它返回正確的時間把我當成證實,由

Select NOW(); 

我有一欄「created_on證實「誰的數據ype是日期時間,在我正在插入觸發器中設置的表格中。我在插入觸發器中將它設置爲NOW()。

SET NEW.created_on = NOW(); 

當我用選擇查詢選擇「created_on」時,它顯示我在GMT的日期時間,而不是我設置的時區。

請告訴我是什麼問題?以及如何解決它。 在此先感謝。

+0

'DATETIME'類型的列根據時區不調整,而'TIMESTAMP'類型列。 – eggyal

+0

請參閱文檔:'MySQL將TIMESTAMP值從當前時區轉換爲UTC存儲,並從UTC返回到當前時區以供檢索。 (對於其他類型,例如DATETIME,這不會發生。)默認情況下,每個連接的當前時區是服務器的時間。更多信息請參見:[11.3.1 DATE,DATETIME和TIMESTAMP類型](http://dev.mysql.com/doc/refman/5.7/en/datetime.html)。 – wchiquito

+0

'SHOW VARIABLES LIKE'%zone%';' - 並研究它們的含義。 –

回答

0

按照該意見由@eggyal和@wchiquito答案是,

如果你想看到在選擇查詢正確的時間,則列的數據類型應該是時間戳,而不是日期時間。 時間戳在選擇查詢中進行渲染時負責處理時區。

由於@eggyal和@wchiquito

相關問題