2017-09-17 162 views
1

我在將ISO8601日期時間格式插入到我的MySQL數據庫時遇到問題。MySQL插入ISO8601日期時間格式

我想將ISO格式(即yyyymmddThhmmss + | -hhmm)插入到我的數據庫表DATETIME列中。

當我嘗試插入我的問題有:

操作失敗:在應用SQL腳本 數據庫出現錯誤。執行:更新dborders SET date ='20080915T155300 + 0500'其中id ='1';

錯誤1292:1292:錯誤的日期時間值:'20080915T155300 + 0500'爲 列'date'在第1行SQL語句:UPDATE dborders SET date = '20080915T155300 + 0500' WHERE id = '1'

有什麼辦法,我可以保存日期時間這種格式到MySQL?

+0

沒有沒有一個本地的方式..認爲你應該有日期時間列和時區專欄......這樣你可以用CONVERT_TZ動態地計算日期時間與時區選擇 –

回答

0

MySQL對時區有相當神祕的支持。也許這你想要做什麼:「有什麼辦法,我可以保存日期時間這種格式到MySQL」

select convert_tz(str_to_date(left(val, 15), '%Y%m%dT%H%i%s'), '+00:00', insert(right(val, 5), 4, 0, ':')) 
from (select '20080915T155300+0500' as val) x 
+0

我需要檢索插入的日期時間與時區也一樣。你認爲這樣我可以恢復插入的值(與時區)並檢索它,因爲我看到它只基於+ HH:mm(時區)轉換小時,並插入'2008-09-15 20:53:00'? – ldragicevic

+0

@ldragicevic。 。 。您可以交換兩個參數來獲得相反的行爲。 –