, timeSchedule.startTime timeSchedule.endTime , - ...: ( , ).
DECLARE @pDoctorID Int = 56
DECLARE @pDate Date = '3/23/2012'
SELECT * FROM timeSchedule WHERE
NOT Exists (
SELECT doctorid FROM Appointments
WHERE doctorid = @pDoctorID AND
CAST(fromDatetime as Date) = @pDate AND
(
(CAST(fromDatetime as Time) >= timeSchedule.startTime AND
CAST(fromDatetime as Time) <= timeSchedule.endTime)
OR
(CAST(toDatetime as Time) >= timeSchedule.startTime AND
CAST(toDatetime as Time) <= timeSchedule.endTime)
OR
(CAST(toDatetime as Time) <= timeSchedule.startTime AND
CAST(fromDatetime as Time) >= timeSchedule.endTime)
)
)
:
1 | 08: 00: 00.00 | 09: 00: 00,00
4 | 11: 00: 00.00 | 12: 00: 00,00
8 | 15: 00: 00.00 | 16: 00: 00,00
, , - , , .
. . .