关于截取datetime类型中某一部分的问题
今天在好朋友的帮助下解决了这个当时我不爱改问题,把它记录下来。
A时间:1900-1-1 10:09:00 (只需要时间,日期是随机生成的,不知道为什么系统选择了1900-1-1)
B时间:2009-2-16 10:18:00
想比较A(Arrive_Time)时间(时分)和B(T_HistoryValue.In_Time)时间(时分)的大小。
当时想了好多方法,后来觉得用先比较Hour,在根据逻辑比较Minute,现在想来,是多么的愚笨啊
后来想了想,为何不把Hour和Minute组成一个整体,经过字符串变化成整数然后比较大小。
后来就在今天一早(9点多,为什么说一早,因为朋友刚上班)请教了朋友,结果茅塞顿开啊。感谢我的朋友。
通过这件事我发现我有点大眼露神,为什么明明在帮助里有这条我就没看到呢?去掉日期的datetime类型变换
语句如下:
CONVERT(char(6),Arrive_Time,114),这条就把日期去掉了。
然后把时间中的冒号去掉,用到replace函数(这个是刚学到的)。语句如下:
Replace(CONVERT(char(6),Arrive_Time,114),':','')
然后再把char变成整数。语句如下:
Cast(Replace(CONVERT(char(6),Arrive_Time,114),':','') as bigint)
然后把B时间也变换了,比较了一下大小。就ok了。
我又发现,where语句中的条件不能乱用,因为可能引起很多语句被屏蔽了。注意!!