2016-04-01 44 views
0

我在MySQL上有一個包含超過3百萬條記錄的大數據庫。用更新查詢重置時間字段時間

我有一個名爲arrival_time的「時間」(hh:mm:ss)字段。 那個時間可能會像24:00:00(這實際上表示00:00:00)或再次25:11:00( - > 1:11:00)等錯誤。
我想去執行類似

UPDATE 'table' SET arrival_time=(arrival_time_ADJUSTED) WHERE arrival_time>"23:59:59"; 

可能是正確和更快的方法?我如何告訴SQL爲arrival_time賦予正確的值? 感謝您的寶貴意見。

+0

理想情況下,應該通過應用程序前端在條目本身處理這種驗證。 – Spidey

+0

其舊數據集的更新...我們需要更新它:( – JahStation

+0

是字段類型「時間」? – Akhil

回答

2

試試這個查詢。

UPDATE yourtable SET arrival_time = TIMEDIFF(arrival_time, '24:00:00') 
WHERE arrival_time > '23:59:59'; 

這是假設,最大值是到達時間是47:59:59。如果您有更高的記錄,則再次重複查詢,直到所有記錄得到更正爲止

+0

非常好我會盡快嘗試,我在同一個方向......我用STR_TO_DATE()做了一些操作, – JahStation