WHERE
startdate <= '2011-12-01'
AND enddate >= '2011-01-01'
(Предполагая, что значение в enddate является последней датой, когда проект активен)
Примеры использования чисел, поиск всего, что перекрывается со 100 до 200 ...
Start | End | Start <= 200 | End >= 100
000 | 099 | Yes | No
101 | 199 | Yes | Yes (HIT!)
201 | 299 | No | Yes
000 | 150 | Yes | Yes (HIT!)
150 | 300 | Yes | Yes (HIT!)
000 | 300 | Yes | Yes (HIT!)
Это абсолютно необходимо И в логике:)
С точки зрения вашего запроса ...
Ваш запрос с круглыми скобками выглядит следующим образом ...
WHERE
(
startdate BETWEEN '01/04/2011' AND '01/12/2011'
OR enddate BETWEEN '01/04/2011' AND '01/12/2011'
OR startdate <= '01/04/2011'
)
AND enddate >= '01/12/2011'
Но ваш пример никогда не соответствует последнему условию AND.Попробуйте добавить скобки, чтобы быть более явным ...
WHERE
(startdate BETWEEN '01/04/2011' AND '01/12/2011')
OR (enddate BETWEEN '01/04/2011' AND '01/12/2011')
OR (startdate <= '01/04/2011' AND enddate >= '01/12/2011')