select replace(cast(123.8 as varchar(20)),'.',':')

解决方案 »

  1.   

    declare @t decimal(10,1)
    set @t='123.8'
    select parsename(@t,2)+':'+cast(cast(parsename(@t,1) as int)*6 as varchar)123:48(所影响的行数为 1 行)
      

  2.   

    select left('123.8',3)+':'+cast(cast(right('123.8',1) as int)*6 as varchar)
      

  3.   

    select left('123.8',3)+':'+cast(cast(right('123.8',1) as int)*6 as varchar)晕。
      

  4.   

    select replace(cast(123.8 as varchar(20)),'.',':')也晕。
      

  5.   

    declare @t decimal(10,1)
    set @t='123.8'
    select parsename(@t,2)+':'+cast(cast(parsename(@t,1) as int)*6 as varchar)
      

  6.   

    那么我觉得只有五入了吧!declare @t decimal(10,2)
    set @t='123.34'select parsename(@t,2)+':'+
           cast(case when parsename(cast(parsename(@t,1) as int)*60.0/100,1)>0 then
           parsename(cast(parsename(@t,1) as int)*60.0/100,2)+1
           else parsename(cast(parsename(@t,1) as int)*60.0/100,2) end as varchar)123:21(所影响的行数为 1 行)
      

  7.   

    declare @t decimal(10,2)
    set @t='1234.63'
    select right('1000'+cast(parsename(@t,2)/60 as varchar),2)+':'+
           right('1000'+cast(parsename(@t,2)%60 as varchar),2)
            +':'+
           cast(case when parsename(cast(parsename(@t,1) as int)*60.0/100,1)>0 then
           parsename(cast(parsename(@t,1) as int)*60.0/100,2)+1
           else parsename(cast(parsename(@t,1) as int)*60.0/100,2) end as varchar)---------------------------------------- 
    20:34:38(所影响的行数为 1 行)