我现在做一个会议室安排的东东,数据库中StartTime代表开始使用时间,EndTime代表结束使用时间。
我的SQL语句该怎么写,才可以把所有情况都判断进去。

解决方案 »

  1.   

    判断一下两个时间段是否交叉:StartTime1,EndTime1;StartTime2,EndTime2如果以下关系任意一个成立,则交叉StartTime1 bwteen StartTime2 and EndTime2 or
    EndTime1   bwteen StartTime2 and EndTime2 or
    StartTime2 bwteen StartTime1 and EndTime1 or
    EndTime2   bwteen StartTime1 and EndTime1
      

  2.   

    根据libin_ftsafe(子陌红尘:当libin告别ftsafe) 的提示。
    大家看看我这样写行不行?将要插入的时间段 StartTime,EndTime
    a和b是数据库中的字段select * from tab3 where (StartTime between a and b) or (EndTime between a and b) or (a between StartTime and EndTime) or (b between StartTime and EndTime)
      

  3.   

    两个时间段
    t11 t12
    t21 t22t12>=t21 and t12<=t22
    或者
    t22>=t11 and t22<=t12