需要使用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,这不是我想要的结果。请问各位还有什么方法?

解决方案 »

  1.   

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

  2.   


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

  3.   

    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
      

  4.   

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

  5.   

    SELECT DATEDIFF( MI, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0
      

  6.   

    现在结果是:1.500000,我需要对其切割,仅留下1.5,
    请问应该怎么做?
    我这样写报错SELECT SUBSTRING((SELECT DATEDIFF( mi, '2013-03-04 15:30:00.000',
     '2013-03-04 17:00:00.000')/60.0), 1,3)
      

  7.   

    SELECT cast(DATEDIFF( mi, '2013-03-04 15:30:00.000', '2013-03-04 17:00:00.000')/60.0 as decimal(28,1))
      

  8.   

    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是小数位
      

  9.   


    先转化成varchar类型,再substring就行:
    SELECT substring(cast(DATEDIFF( mi, '2013-03-04 15:30:00.000',  '2013-03-04 17:00:00.000')/60.0 as varchar),1,3)