这是我的查询。
("Select Count(*) From table1 where [t1] <= @TimeIn And [t2] >= @TimeOut;", cn)
我的问题是我无法比较其他时间。例如,如果我输入7:00-9:00
,那么它将被另存为新时间;如果我输入8:00-10:00
,它将也被保存在数据库中,我该如何解决呢?与第一个冲突?
答案 0 :(得分:1)
寻找有冲突的Time Windows时,需要执行三种检查组合。
此Sql应该涵盖这些选项
select
count(*) from table1
where
(
@timeIn > [T1] AND @timeIn < [T2]
) -- TimeIn in existing window
OR
(
@timeOut > [T1] AND @timeOut < [T2]
) -- TimeOut in existing window
OR
(
@timeIn < [T1] AND @timeOut > [T2]
) -- TimeIn and TimeOut wholly covers existing window
如果返回0,就没有冲突