检查按日期列出的条目数

时间:2013-02-22 15:14:53

标签: mysql sql doctrine-orm dql

我正在尝试创建一个特定的查询。 例如 我有事件表:

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

感谢。

2 个答案:

答案 0 :(得分:4)

重叠的正确逻辑是:

where new_startDate <= end and
      new_endDate >= start

答案 1 :(得分: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是事件的新日期。