两个日期时间字段开始时间是:2010-12-26 15:30:03    ATime结束时间是:2010-12-27 15:30:03    BTime如何显示是:
BTime-ATime=24:00:00如果
开始时间是:2010-12-26 15:30:03    ATime结束时间是:2010-12-27 16:40:03    BTimeBTime-ATime=25:10:00在sql里面应该怎么实现呢?

解决方案 »

  1.   

    DECLARE @starttime DATETIME,@endtime DATETIME;
    SELECT @starttime='2010-12-26 15:30:03',@endtime='2010-12-27 15:30:03';select right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) / 3600 as int) as varchar),2) + ':' + 
           right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 3600 / 60 as int) as varchar),2) + ':' + 
           right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 60 as int) as varchar),2)/*
                   
    -------------- 
    24:00:00(所影响的行数为 1 行)
    */DECLARE @starttime DATETIME,@endtime DATETIME;
    SELECT @starttime='2010-12-26 15:30:03',@endtime='2010-12-27 16:40:03';select right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) / 3600 as int) as varchar),2) + ':' + 
           right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 3600 / 60 as int) as varchar),2) + ':' + 
           right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 60 as int) as varchar),2)/*
                   
    -------------- 
    25:10:00(所影响的行数为 1 行)*/
      

  2.   


    select right('0'+ cast(cast(datediff(ss ,@starttime,@endtime)/3600 as int) as varchar),2) + ':' + 
           right('0'+ cast(cast(datediff(ss ,@starttime,@endtime)%3600 / 60 as int) as varchar),2) + ':' + 
           right('0'+ cast(cast(datediff(ss ,@starttime,@endtime)%60 as int) as varchar),2)