2013-02-22 1 views
0

Im пытается создать конкретный запрос. я например есть таблица с событиями:Проверьте, сколько записей находится в таблице по дате

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: beacause 2 события находятся в начале времени, а один - в конце времени.

Спасибо.

ответ

2

дать этому попытку,

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

где new_startDate и new_endDate являются новые даты мероприятия.

+0

Я думаю, @ ответ Гордона является то, что ОП хочет. Это вернет '0', если' new_startDate' - '11: 00', а' new_endDate' - 20:00. –

4

Правильная логика перекрытия:

where new_startDate <= end and 
     new_endDate >= start