我尝试对存储过程进行编码,以检查当前是否在表中存储了新的间隔。
示例:
我的桌子上有这些值:
startHour = 7.20
endHour = 8.10
我想找到一种方法来取消任何带有startHour或endHour的插入,这会导致与之前存储的值冲突,例如startHour = 7.21,7.32,8.09等。 我的意思是,区间7.20 - 8.10不可用。 是的,我使用小数。 谢谢!
答案 0 :(得分:0)
我认为你可以这样做:
declare @startHour decimal
declare @endHour decimal
IF
0 =
(SELECT
COUNT(*)
FROM HourIntervals
WHERE (startHour <= @startHour AND @startHour < endHour) OR (startHour <= @endHour AND @endHour < endHour))
BEGIN
-- Interval ok, insert your record here
select 1
END
ELSE
BEGIN
-- Interval overlaps, don't insert
select 0
END