Мне кажется, это просто проблема перекрывающегося диапазона, и в этом случае вы хотите возвращать записи, которые , а не перекрываются с временем начала и окончания ввода.Попробуйте этот запрос:
SELECT *
FROM room_booking
WHERE existing_end < ? OR existing_start > ?;
К двум ?
заполнителям, указанным выше, вы будете привязывать, по порядку, $new_start_time
и $end_start_time
.Таким образом, вы получите следующий запрос:
SELECT *
FROM room_booking
WHERE existing_end > $new_start_time OR existing_start > $end_start_time;