解决方案 »

  1.   

    结束时间<beginTime OR 开始时间>endTime
      

  2.   

    beginTime<开始时间 AND 结束时间<endTime
      

  3.   

    参数开始时间<=数据库结束时间 and 参数结束时间>=数据库开始时间 这个逻辑用来判断是否存在这个区间内
      

  4.   

    --以前写过类似功能的判断,就是某个东西,在某段时间内被某个人占用了,其他人这段时间内不能再去占用
    --就是一个时间交叉的逻辑判断
    --当转化为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)--前交叉
      

  5.   

    其实交叉的情况分为四种第一,指定开始结束时间在已有的时间段内(包含)
    第二,指定的开始时间落在已有的时间段内(后交叉)
    第三,指定的结束时间落在已有的时间段内(前交叉)
    第四,指定的开始时间落在已有的时间段内,指定的结束时间落在已有的时间段内(前后同时交叉)不过第四种情况归属于第二或者第三种情况,所以sql中只有三个判断条件