我前幾天發表了一篇文章,並使用了從響應中給出的建議。我有一個大型的Web應用程序,它託管在我們的時區的服務器上,在那裏我使用了所有的datetime/timestamps到當前的時區。我應該使用UTC並將它在代碼級別上轉換爲適當的時區。MySQL時區混淆
嗯,我現在這樣做,但我有問題。我現在使用的服務器不在我的時區,TIMESTAMP(插入時)設置爲系統(O/S)時間。不是UTC時間。
爲什麼不:
SET time_zone = '+00:00';
修復插入TIMESTAMP值?我如何確保MySQL服務器將時間戳默認爲UTC?
解決:
這實在是令人困惑,因爲MySQL的自動轉換和顯示TIMESTAMP的數據庫,以目前的時區,所以我所有的時間戳轉換並顯示到系統時區。實際上,所有TIMESTAMPS存儲爲UTC。所以如果你去:
SET SESSION time_zone = '+00:00'; SELECT * FROM what_ever_table;
它會顯示在該時區的時間戳。
可能的重複http://stackoverflow.com/questions/4562456/mysql-setting-time-zone-in-my-cnf-options-file – Bryan
@BryanMoyles號我不是所有者MySQL服務器,所以我不能更改配置文件。 – user1627928