我存儲一些間隔在SQL時間間隔,例如:檢查使用SQL條件
id INT
from DATE
to DATE
如何檢查,僅使用一個狀態(如果可能),如果有一個新的區間衝突一個現有的?
例子:
|-----------| (from 1 to 5)
|-----------| (from 2 to 6)
|--| (from 3 to 4)
|--| (from 7 to 8)
每間隔(前三)具有與其他兩個區間......除了最後一個是單獨有些抵觸。
-
可以使用一些條件等來實現此檢查:
WHERE (`from` <= $FROM and `to` >= $TO)
但這只是檢查間隔是包含新一...不是其他的時間間隔,有一些十字路口或者裏面的那個這個新的。
也許這樣?
WHERE NOT (`from` < $FROM and `to` < $TO) AND NOT (`from` > $FROM and `to` > $TO)
Obs .:我需要找到衝突來提醒用戶這個新時期已經存在或與現存的衝突存在衝突。
你使用什麼樣的週期表示法,例如:關閉開?換句話說,你會考慮'(從1到5)'與'(從5到6)'碰撞嗎? – onedaywhen 2010-07-07 10:45:26