22,210
社区成员
发帖
与我相关
我的任务
分享
--以前写过类似功能的判断,就是某个东西,在某段时间内被某个人占用了,其他人这段时间内不能再去占用
--就是一个时间交叉的逻辑判断
--当转化为sql判断的时候,觉得没那么简单吧
create table #test
(
dbtime1 datetime,
dbtime2 datetime
)
insert into #test values('2014-6-3','2014-7-3')
declare @begindate datetime
declare @enddate datetime
set @begindate='2014-5-7'
set @enddate='2014-9-9'
select case when (COUNT(1)>0) then '交叉'else '不交叉' end as result from #test where
(@begindate<dbtime1 and @enddate>dbtime2)--被包含
or
(@begindate>dbtime1 and @begindate<dbtime2)--后交叉
or
(@enddate>dbtime1 and @enddate<dbtime2)--前交叉