我有一張描述未來航班到達時間的表格。在每次航班到達時間已過(或過期)後,我希望查詢通過插入下一個到達時間來更新到達時間,這通常是從當前日期/時間開始的一週。爲什麼我的更新查詢對我的表格內容有影響?
儘管我的查詢不會產生任何錯誤消息,但它對於過期的到達時間沒有影響,因爲它應該如此。
找到下面的查詢:
//更新應在航班已經到達後的第31分鐘和小時之間發生。
UPDATE flightSched
SET `arrivalTime`= ADDDATE(NOW(), INTERVAL 1 WEEK)
WHERE arrivalTime BETWEEN SUBTIME(NOW(), '00:31:00')
AND SUBTIME(NOW(),'01:00:00')
ORDER BY arrivalTime ASC
查找下面我表的simlpe版本:
+-------------+---------------------+
| FlightNo | arrivalTime |
+-------------+---------------------+
| ET821 | 2013-11-24 08:05:24 |
| MS838 | 2013-11-24 10:05:24 |
| H7361 | 2013-11-24 13:15:06 |
+-------------+---------------------+
如果當前時間是09:45,然後航班號ET821到達時間應更新爲2013年12月1日08:05 :24,請幫我理解爲什麼這個更新不會發生?
你看,當你輸入SELECT SUBTIME什麼樣的價值(NOW(),00:31:00' )?另外,ORDER BY僅在返回結果時用於SELECT查詢。沒有結果返回UPDATE查詢,所以沒有什麼可以訂購。 – WebChemist
如果當前時間是'09:45',那麼根據您的要求,'MS838'的到達時間應該改變,而不是'ET821'。對? – peterm
@peterm正確MS838應該改變 – SirBT