可能我表述的有问题,
差值就是求 Actual Ending time与Actual Starting Time之间的时间差!!
和值 是求在Actual Ending time的基础上加Actual Starting Time    结果: 20:18 :36

解决方案 »

  1.   


    -- 建测试表
    create table #t(x varchar(50),y varchar(50))insert into #t(x,y)
     select 'Actual Starting Time:9:35:25','Actual Ending time:10:43:11'
    -- 差值函数
    create function dbo.fn_cha
    (@x varchar(50),
     @y varchar(50))
    returns varchar(50)
    begin
    declare @z varchar(50)
    declare @ds intselect @ds=datediff(s,
                        '2014-01-01 '+replace(@x,'Actual Starting Time:',''), 
                        '2014-01-01 '+replace(@y,'Actual Ending time:',''))select @z=right('00'+rtrim(@ds/3600),2)+':'
             +right('00'+rtrim(@ds%3600/60),2)+':'
             +right('00'+rtrim(@ds%3600%60),2)return @z
    end-- 和值函数
    create function dbo.fn_he
    (@x varchar(50),
     @y varchar(50))
    returns varchar(50)
    begin
    declare @z varchar(50)
    declare @d datetime,@e datetimeselect @d='2014-01-01 '+replace(@y,'Actual Ending time:','')select @e=dateadd(s,
                      datepart(hh,@d)*3600+datepart(mi,@d)*60+datepart(s,@d),
                      '2014-01-01 '+replace(@x,'Actual Starting Time:',''))select @z=right(convert(varchar,@e,120),8)return @z
    end-- 测试
    select x,
           y,
           dbo.fn_cha(x,y) '差值',
           dbo.fn_he(x,y) '和值'
     from #t/*
    x                                 y                                 差值             和值
    -------------------------------- -------------------------------- -------------- --------------
    Actual Starting Time:9:35:25     Actual Ending time:10:43:11      01:07:46       20:18:36(1 row(s) affected)
    */