在where语句中,如何判断两端时间是否有交集?
具体情形:已知时间段:firsttime 和secondtime
表中有字段begintime和endtime
凡是和firsttime和begintime有交集记录都需要我写的是:where firsttime between begintime and endtime 
      or secondtime between begintime and endtime
      or begintime between firsttime and secondtime
      or endtime  between firsttime and secondtime觉得不是这样子的谢谢

解决方案 »

  1.   

    已知时间段:firsttime 和secondtime
    表中有字段begintime和endtimeselect * from table1 where tdatetime between 
    if(firsttime<begintime,firsttime,begintime) and if(secondtime>endtime,secondtime,endtime)
      

  2.   

    select * from table1 where tdatetime between 
    if(firsttime>begintime,firsttime,begintime) and if(secondtime<endtime,secondtime,endtime)上面的写反了,这个才对。。
      

  3.   

    select *
    from 表
    where begintime>=@firsttime and endtime<=@secondtime
      

  4.   


    tdatetime 这个是什么东西?
      

  5.   

    写错了。这次这个应该正确了 select *
    from 表
    where begintime<=@secondtime and endtime>=@firsttime