У меня есть система заказа.В БД у меня есть таблица с заблокированными датами для системы заказов (когда клиент хочет отключить его по какой-то причине, например, в отпуске).Система заказов позволяет оформить заказ в течение следующих четырех недель с момента фактической даты.
В качестве ввода у меня в PHP $startDT
и $endDT
Каждая блокировка в дБ имеет свои valid_from
и valid_to
столбцы
Проблема с долговременными блокировками (например, месяц), когда valid_from и valid_to находятся вне периода времени для создания заказа.
Для краткосрочных и среднесрочных блокировок хорошо работает этот код:
SELECT * FROM `vk_blocking` WHERE (`valid_from` BETWEEN '$startDt' AND '$endDt') OR (`valid_to` BETWEEN '$startDt' AND '$endDt')
Но в показанном долгосрочном (ID: 3) есть valid_from
или valid_to
между $startDt
и $endDt
Как попросить MySQL вернутьтакже на длительный срок?Есть ли что-то вроде
SELECT * FROM `vk_blocking` WHERE DATERANGE(`valid_from`, `valid_to`) INTERSECTS DATERANGE($startDt, $endDt)