下面的语句太长,而且字符串转换也比较速度也很慢
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是个菜鸟,希望个为前辈指点
10 个解决方案
#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,那他会同时满足早班和中班的条件
#5
不知道你具体是怎么设计的。
但是上班时间肯定是先前定死的,如果上班时间是 16:30,那么肯定是中班的时间了。
如果是看打卡时间来确定上的是哪个班,那么判断范围不用那么广,标准时间往后推1小时啥的就行。
#6
客户的要求,没办法啊。。。
实际上是煤矿车辆的下井躺数,一个车,早班可以多次上下井,只要是在16:30之前下井的车都要统计到早班里面。。。。
between确实有这个隐患,我不敢怎么用它,假如一个人刚好是16:30打的卡,那会同时满足两个条件,这样汇总出来的次数就和明细实际次数人数不一致了
实际上是煤矿车辆的下井躺数,一个车,早班可以多次上下井,只要是在16:30之前下井的车都要统计到早班里面。。。。
between确实有这个隐患,我不敢怎么用它,假如一个人刚好是16:30打的卡,那会同时满足两个条件,这样汇总出来的次数就和明细实际次数人数不一致了
#7
#8
客户的要求让人吐血,横向的“用车单位”不是每个都统计,他们专门的点出几个来要你统计,搞的代码都写死了,左边的车型如果是特种车还不能统计次数,要统计小时。。。
真想铲他,这种要求怎么婉言拒绝拒绝啊。。。
真想铲他,这种要求怎么婉言拒绝拒绝啊。。。
#9
不要婉言拒绝。。,直接回绝!否则你只能难受
#10
convert(varchar(12),Time,108 )between '07:30:01' and '16:30:00'
#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,那他会同时满足早班和中班的条件
#5
不知道你具体是怎么设计的。
但是上班时间肯定是先前定死的,如果上班时间是 16:30,那么肯定是中班的时间了。
如果是看打卡时间来确定上的是哪个班,那么判断范围不用那么广,标准时间往后推1小时啥的就行。
#6
客户的要求,没办法啊。。。
实际上是煤矿车辆的下井躺数,一个车,早班可以多次上下井,只要是在16:30之前下井的车都要统计到早班里面。。。。
between确实有这个隐患,我不敢怎么用它,假如一个人刚好是16:30打的卡,那会同时满足两个条件,这样汇总出来的次数就和明细实际次数人数不一致了
实际上是煤矿车辆的下井躺数,一个车,早班可以多次上下井,只要是在16:30之前下井的车都要统计到早班里面。。。。
between确实有这个隐患,我不敢怎么用它,假如一个人刚好是16:30打的卡,那会同时满足两个条件,这样汇总出来的次数就和明细实际次数人数不一致了
#7
#8
客户的要求让人吐血,横向的“用车单位”不是每个都统计,他们专门的点出几个来要你统计,搞的代码都写死了,左边的车型如果是特种车还不能统计次数,要统计小时。。。
真想铲他,这种要求怎么婉言拒绝拒绝啊。。。
真想铲他,这种要求怎么婉言拒绝拒绝啊。。。
#9
不要婉言拒绝。。,直接回绝!否则你只能难受
#10
convert(varchar(12),Time,108 )between '07:30:01' and '16:30:00'