时间字段为time1,要判断time1是否在7:30-15:30之间(7:30<=time1<16:30),有没有比较简单一点的方法?下面的语句太长,而且字符串转换也比较速度也很慢
CONVERT(varchar(12),Time,108 )>='07:30:00' AND CONVERT(varchar(12),Time,108)<'16:30:00'大家都知道DateTime其实是一个表示自1900年以来的天数,能不能去掉整数部分来比较呢?
类似 (float)time1-(int)(float)time1 的方法怎么写呢?
我SQL是个菜鸟,希望个为前辈指点

解决方案 »

  1.   

    好像没有其他方法,如果是2008的话,可以用CONVERT(TIME,列名) BETWEEN XXX AND XXX这样.就没那么长了.
      

  2.   

    CONVERT(varchar(12),Time,108 )between '07:30:00' AND '16:30:00'
      

  3.   

    between可能会有重复记录,它等价与 7:30<=time1<=16:30
      

  4.   

    客户的要求,没办法啊
    实际上是煤矿车辆的下井躺数,一个车,早班可以多次上下井,只要是在16:30之前下井的车都要统计到早班里面。between确实有这个隐患,我不敢怎么用它,假如一个人刚好是16:30打的卡,那会同时满足两个条件,这样汇总出来的次数就和明细实际次数人数不一致了
      

  5.   

    convert(varchar(12),Time,108 )between '07:30:01' and '16:30:00'