2013-02-22 64 views
0

我試圖創建特定的查詢。 E.g 我有事件表:按日期檢查表中有多少條目

id |  start  |  end 
----------------------------------------- 
1 | 10-08-2013 12:00 | 10-08-2013 14:00 
2 | 10-08-2013 12:00 | 10-08-2013 14:00 
3 | 10-08-2013 15:00 | 10-08-2013 16:00 

,我想插入一個新event(start: 13:00, end: 15:30)而在這之前,我想通過查詢檢查許多事件是如何在同一時間。在這種情況下,結果應爲3:因爲2個事件處於開始時間,一個處於結束時間。

謝謝。

回答

2

試試這個,

SELECT COUNT(DISTINCT ID) totalCOunt 
FROM tableName 
WHERE new_startDate BETWEEN start AND end 
     OR 
     new_endDate BETWEEN start AND end 

其中new_startDatenew_endDate是事件的新日期。

+0

我覺得@戈登的答案是OP想要什麼。如果'new_startDate'爲'11:00'並且'new_endDate'爲20:00,這將返回'0'。 – 2013-02-23 19:10:18

4

正確的邏輯重疊:

where new_startDate <= end and 
     new_endDate >= start