注册 登录
编程论坛 SQL Server论坛

关于datetime类型相差的问题

sky_yang_sky 发布于 2010-10-10 14:16, 708 次点击
我现在有如下的表
fnumber    fhour                    fhours
2118    2010-07-26 06:43:00.000    2010-07-26 20:30:00.000
2118    2010-07-27 06:40:00.000    2010-07-27 19:30:00.000
2118    2010-08-24 17:10:00.000    2010-08-25 06:40:00.000
希望得理后得到如下的结果,
fnumber    fhour                    fhours                              difftime
2118    2010-07-26 06:43:00.000    2010-07-26 20:30:00.000               13:37
2118    2010-07-27 06:40:00.000    2010-07-27 19:30:00.000               12:50
2118    2010-08-24 17:10:00.000    2010-08-25 06:40:00.000               13:30
就是fhours减fhour的时间精确到分钟,请问怎么做,请高手指点,谢谢
3 回复
#2
tangyunzhong2010-10-10 15:18
你这里要不要计算天数啊,还是所有的数据相关都不到一天呀
#3
zhaoyang10082010-10-10 16:10
你意思是化为先小时后分钟的形式是吧,还挺麻烦的,我试了一下,这样可以
select fnumber,fhour,fhours,cast(ceiling(datediff(mi,fhour,fhours)/60) as varchar(10))+':'
+cast((datediff(mi,fhour,fhours)-ceiling(datediff(mi,fhour,fhours)/60)*60) as varchar(10))
 as difftime
from Table_1
其中datediff(mi,fhour,fhours)使计算两个时间之间相差的分钟数
ceiling(datediff(mi,fhour,fhours)/60是取里面的小时数 转换为字符之后用+连字符连‘:’
(datediff(mi,fhour,fhours)-ceiling(datediff(mi,fhour,fhours)/60)*60是求扣除整个小时后剩下的分钟数,这是我得到的结果,希望对你有所帮助
fnumber      fhour                       fhours             difftime
1    2010-07-26 06:43:00.000    2010-07-26 20:30:00.000    13:47
2    2010-07-27 06:40:00.000    2010-07-27 19:30:00.000    12:50
3    2010-08-24 17:10:00.000    2010-08-25 06:40:00.000    13:30
#4
sky_yang_sky2010-10-11 08:59
非常谢谢两位。
1