2010-10-23 54 views
1

Im堅持這一點,需要一些幫助。檢查重疊的開始結束時間,MySQL

SELECT COUNT(id) AS counter 
    FROM time_reporter 
WHERE user_id='$user_id' 
    AND actual_date = '$date' 
    AND ((start_time > '$start_time' AND end_time < '$end_time')) 

它檢查確定的,如果在範圍內,但我需要確保,如果存在記錄的開始,結束時間,所以下一個記錄無法插入...

如果一個記錄有END_TIME例如22: 30下一個記錄不能有start_time 22:15等... 所以這個我不能得到是數......

所以下一個記錄不會重疊或干擾同一天內的任何現有時隙,並由相同用戶... 也將很高興獲得可用的時間範圍(空閒時間)將是我的第二個問題...

預先感謝您

任何幫助表示讚賞 謝謝

回答

0
SELECT COUNT(id) AS counter FROM time_reporter WHERE user_id='$user_id' AND actual_date = '$date' AND ((start_time > '$start_time' AND end_time < '$end_time') OR (end_time > '$start_time' AND end_time < '$end_time')) 

我想找到一個解決方案上面的代碼防止START_TIME,END_TIME重疊...

eaxmple

22:00 22:15

22:15 23:15

,但是這又是錯誤的... 23:00 23:45

可能會有改進,使其防彈...

0

試試這個查詢發現在mysql上重疊任務時間

SELECT * FROM your_table Where (('2014-02-05 20:00:00' <= end_time and '2014-02-05 20:00:00' > start_time) OR (IF(('2014-02-05 08:00:00' < end_time),IF('2014-02-05 08:00:00'>=start_time,false,IF('2014-02-05 20:00:00'>start_time,true,false)) ,false)) OR ('2014-02-05 08:00:00' =start_time and '2014-02-05 20:00:00'=end_time)) and user_id =116 
相關問題