字符串格式的时间变量 如: '00:00:000' ,描述的是分,秒和毫秒
怎么实现两个这种变量的加减??需要原代码,急!!

解决方案 »

  1.   

    declare @i varchar(100)
    set @i = '00:00:000'
    select right(convert(char(12), dateadd(millisecond,10,@i), 114), 9)
    select right(convert(char(12), dateadd(second,10,@i), 114), 9)
    select right(convert(char(12), dateadd(minute,10,@i), 114), 9)
      

  2.   

    declare @i varchar(100),@j varchar(100)
    set @i = '00:00:000'
    set @j = '01:36:562'--刚才这里错的,要将最后一个“:”替换成“.”
    select right(convert(char(12), dateadd(millisecond,10,stuff(@i,6,1,'.')), 114), 9)
    select right(convert(char(12), dateadd(second,10,stuff(@i,6,1,'.')), 114), 9)
    select right(convert(char(12), dateadd(minute,10,stuff(@i,6,1,'.')), 114), 9)select datediff(millisecond, stuff(@i,6,1,'.'), stuff(@j,6,1,'.'))
    select datediff(second, stuff(@i,6,1,'.'), stuff(@j,6,1,'.'))
    select datediff(minute, stuff(@i,6,1,'.'), stuff(@j,6,1,'.'))
      

  3.   

    那个相减的datediff函数得到的结果怎么不对啊
      

  4.   

    虽然结果减的不对,但是还是能解决问题,这个datediff函数好傻,不能精确到毫秒,减的结果还要自己换算下才能用,搞笑的很
      

  5.   

    /*
    哦,我知道了,时间数据类型在内存其实是浮点数,确实不能精确到毫秒,例如:
    */
    declare @i datetime, @j datetime
    set @i = '00:00:00.002'
    set @j = '00:00:00.000'
    select @i, @j, datediff(ms, @j, @i)