1
**Schedule Table** 
Day nvarchar()
StartTime time(7)
EndTime time(7)

入力が既存のレコードと重複するかどうかを検出したいと考えています。

Day -------- StartTime -------- EndTime
Sunday       10:00:00           15:00:00

これにより、次の値を挿入することはできません

Day -------- StartTime -------- EndTime
Sunday       10:00:00           11:00:00

Day -------- StartTime -------- EndTime
Sunday       10:00:00           12:00:00

や。。など。

私のコード:

SELECT * FROM Schedule
WHERE Day = 'Sunday' AND
    NOT(StartTime < '10:00:00' AND EndTime > '11:00:00')
AND (StartTime < '10:00:00'  AND EndTime > '11:00:00')
4

2 に答える 2

0
    SELECT * FROM Schedule
    WHERE Day = 'Sunday' AND
    ('10:00:00' < EndTime AND '12:00:00' > StartTime)
    ORDER BY ScheduleID
于 2013-01-14T18:34:48.837 に答える
0

次のような where 句を使用して、期間の重複を検出できます。

where   p1.startTime <= p2.EndTime
        and p2.startTime <= p1.EndTime

挿入しようとしている場合は、行を挿入しようとしている行に置き換えることができp2ます。

于 2013-01-14T18:25:24.143 に答える