Запрос select для выбора диапазона дат

Есть диапазон дат, например с 02.11.2020 по 13.11.2020 или с 02.11.2020 по 30.11.2020 Как написать SQL запрос для выборки дат на одну неделю? Если дата с 30.11.2020 по 05.12.2020, как написать SQL запрос для выборки дат на одну неделю? В базе дата начала и дата окончания хранится в отдельных полях. Даты могут быть не 1 неделю, 2 недели, 3 недели и месяц.


Ответы (1 шт):

Автор решения: Akina

Входные данные: @week_start - первый день требуемой недели (формально не обязан быть понедельником).

Если нужны записи, полностью "накрывающие" неделю, то

SELECT *
FROM source
WHERE date_start <= @week_start
  AND date_end >= @week_start + INTERVAL 1 WEEK

Если достаточно хотя бы частичного перекрытия, то

SELECT *
FROM source
WHERE date_start <= @week_start + INTERVAL 1 WEEK
  AND date_end >= @week_start 

fiddle

→ Ссылка