关于截取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语句中的条件不能乱用,因为可能引起很多语句被屏蔽了。注意!!

转载于:https://www.cnblogs.com/zhengyunjia/archive/2009/02/16/1391584.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值