我在表中用一个5位长的字符型字段来记录时间,如'13:08' , 请问:  有没有这种字符型时间的加减函数啊。。  如:我要将 '13:00' 加上3个小时,即加'03:00' 等于16:00 ,  求 加减函数。

解决方案 »

  1.   

    用函数将13:08提取出来转换为int类型.Declare @time varchar(5)
    Declare @str  varchar(2)
    declare @res intset @time='13:08'
    set @str=substring(@time,0,len(@time))
    set @res=cast(@str as int)+3
    select @res
      

  2.   

    declare @time varchar(100),@add varchar(100)
    select @time='13:00' ,@add='08:20'  --加8小时20分
    select convert(varchar(5),dateadd(mi,datediff(mi,'2000-1-1','2000-1-1 ' + @add + ':00.000'), '2000-1-1 ' + @time + ':00.000'),108)
    /*
    21:20
    */
      

  3.   


    DECLARE @Time AS NVARCHAR(5)
    DECLARE @Minute AS INT
    DECLARE @AddTime as NVARCHAR(5)
    SET @Time='13:00'
    SET @AddTime='03:50'SET @Minute=CONVERT(INT,LEFT(@Time,2))*60+CONVERT(INT,RIGHT(@Time,2))
    SET @Minute=@Minute+ CONVERT(INT,LEFT(@AddTime,2))*60+CONVERT(INT,RIGHT(@AddTime,2))SET @Time=CONVERT(NVARCHAR(2),ROUND(@Minute/60,0))+':'+CONVERT(NVARCHAR(2),ROUND(@Minute%60,2))
    PRINT @Time
    --16:50
      

  4.   

    declare @s varchar(5)
    set @s='13:00'
    select left(right(convert(varchar(20),dateadd(hh,3,cast(@s as datetime)),120),8),5)---------- 
    16:00(所影响的行数为 1 行)