Я столкнулся с подобной проблемой. Моя проблема состояла в том, чтобы остановить бронирование между диапазоном заблокированных дат. Например, бронирование заблокировано для собственности от 2-го мая до 7-го мая. Мне нужно было найти какую-то перекрывающуюся дату для обнаружения и остановки бронирования. Мое решение похоже на LordJavac.
SELECT * FROM ib_master_blocked_dates WHERE venue_id=$venue_id AND
(
(mbd_from_date BETWEEN '$from_date' AND '$to_date')
OR
(mbd_to_date BETWEEN '$from_date' AND '$to_date')
OR
('$from_date' BETWEEN mbd_from_date AND mbd_to_date)
OR
('$to_date' BETWEEN mbd_from_date AND mbd_to_date)
)
*mbd=master_blocked_dates
Сообщите мне, если это не сработает.