Вы, кажется, немного озадачены тем, как обрабатывать перекрывающиеся временные рамки (а также последний день апреля).
Этот лог c:
WHERE start_date >= '2017-04-01' AND
end_date <= '2017-04-07'
Ищет start_date
/ end_date
пар, которые выпадают в первую неделю апреля.
Если вы хотите любое перекрытие, то вы хотите, чтобы start_date
был до конца периода и end_date
после начала:
WHERE start_date < '2017-04-07' AND
end_date > '2017-04-01'
(Если вы включите конечные точки, то вы хотите, чтобы <=
и >=
.)
Если вы хотите, чтобы complete перекрывались, то начало - один или до первого апреля и конец наступает через неделю или позже:
WHERE start_date <= '2017-04-01' AND
end_date >= '2017-04-07'