Проверка показывает правильность решения 2х вариантов решения:
Когда указывается промежуток только доя начальной даты
FROM Rooms
JOIN Reservations ON Rooms.id=Reservations.room_id
WHERE
(DATE(start_date) BETWEEN '2020-03-16T00:00:00.000Z'
AND '2020-03-22T00:00:00.000Z')
AND
DATEDIFF(end_date, start_date)>=1
GROUP BY room_id
Когда указывается этот промежуток и для начальной и для конечной даты.
2е решение неверно, т. к. конечная дата по сути условия задания может выходить за 12ю неделю.
Добавьте, пожалуйста, в базу данных запись, где начальная дата входит в заданный промежуток, а конечная находится за его пределами и, соответственно исправьте проверку решения.
Проверка показывает правильность решения 2х вариантов решения: