Здравствуйте, Dmitry Pyatkov, Вы писали:
DP>Здравствуйте, KGP, Вы писали:
KGP>>SELECT id_order FROM rorder WHERE (<начальная дата> BETWEEN begin_time AND end_time)
KGP>> or (<конечная дата> BETWEEN begin_time AND end_time)
DP>Да так оно так, да не так.
DP>В смысле временой промежуток может наченаться раньше проверяемого и кончаться позже.
Похоже, что вот так:
SELECT id_order
FROM rorder
WHERE <начальная дата> = begin_time OR <конечная дата> = end_time OR
(<начальная дата> BETWEEN begin_time AND end_time) OR
(<конечная дата> BETWEEN begin_time AND end_time) OR
(begin_time BETWEEN <начальная дата> AND <конечная дата>) OR
(end_time BETWEEN <начальная дата> AND <конечная дата>)
Собственно у меня была вот такая задачка: узнать, какие комнаты заняты на определенный промежуток времени. Решалась она вот как (MSSQL):
select roomID
from roomBookings
where @df=dateFrom or @dt=dateTo or (@df between dateFrom and dateTo) or
(@dt between dateFrom and dateTo) or (dateFrom between @df and @dt) or
(dateTo between @df and @dt)
Я правильно понял условие?
... << RSDN@Home 1.1.0 stable >>