0

我试图创建一个特定的查询。例如,我有事件表:

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 个事件在开始时间,一个在结束时间。

谢谢。

4

2 回答 2

4

重叠的正确逻辑是:

where new_startDate <= end and
      new_endDate >= start
于 2013-02-22T15:18:46.723 回答
2

试试这个,

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

wherenew_startDatenew_endDate是事件的新日期。

于 2013-02-22T15:17:38.340 回答