2017-04-20 29 views
1

我用Unix時間戳在我的數據庫中存儲事件 當我想在MySQL中使用FROM_UNIXTIMEDATE_ADD函數將它們作爲日期時間獲取時,生成的右值等於我當前位置的時區(UTC +3: 30)。 我必須使用DATE_ADD函數,因爲FROM_UNIXTIME不適用於負時間戳。我該如何解決這個問題? 感謝所有提前。MySQL ADD_DATE時區問題

這是我的查詢:

SELECT topic, `start`, FROM_UNIXTIME(`start`), DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) FROM uzr_event 

,就是這樣的答案: Results

回答

0

您的結果偏差的原因是因爲你傳遞給DATE_ADD字符串正在被解釋會話時區,而不是UTC。

您可以查詢之前:

SET time_zone = 'UTC'; 

或者你可以離開會議時區的方程,只是改變這一點:

DATE_ADD('1970-01-01 1:0:0', INTERVAL `start` SECOND) 

要這樣:

DATE_ADD(FROM_UNIXTIME(0), INTERVAL `start` SECOND)