日期:2014-05-17  浏览次数:20794 次

使用SQL,求两个时间的小时差
需要使用SQL求两个时间的小时差,
例如时间:'2013-03-04 15:30:00.000' ,  '2013-03-04 17:00:00.000'。
我需要返回的是1.5小时。

如果使用:SELECT DATEDIFF( Hour, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000'),
它返回的是2,这不是我想要的结果。

请问各位还有什么方法?

------解决方案--------------------
SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0
hour是舍去分钟的,不会计算具体分钟
------解决方案--------------------

select datediff(minute,'2013-03-04 15:30:00.000','2013-03-04 17:00:00.000')/60.0

------解决方案--------------------
DECLARE @a DATETIME,@b DATETIME 
SELECT @a='2013-03-04 15:30:00.000',@b=  '2013-03-04 17:00:00.000'

SELECT DATEDIFF(minute,@a,@b)/60.0

------解决方案--------------------
SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')*1.0/60

------解决方案--------------------
SELECT DATEDIFF( MI, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0
------解决方案--------------------
引用:
引用:SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0
hour是舍去分钟的,不会计算具体分钟
现在结果是:1.500000,我需要对其切割,仅留下1.5,
请问应该怎么做?
我这样写报错
SQL code?12SELECT……

SELECT cast(DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 as decimal(28,1))
------解决方案--------------------
SELECT convert(decimal(18,1),DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0) 
类型转换啊,decimal(18,1)这个1是小数位