16进制字符串?declare @i int
declare @b varbinary(20)set @i=123
set @b=cast(@i as varbinary(20))
select @b
                                           
------------------------------------------ 
0x0000007B(所影响的行数为 1 行)

解决方案 »

  1.   

    --自己写一个玩玩儿
    create function f_dido_10_16(@n int)
    returns varchar(8000)
    as
    begin
        declare @hex varchar(8000)
        declare @a varchar(16)
        set @hex=''
        set @a='0123456789ABCDEF'
        while (@n<>0)
        begin
          set @hex=@hex+cast(substring(@a,@n%16+1,1) as varchar)
          set @n=@n/16
        end
        return reverse(@hex)
    end
    select dbo.f_dido_10_16(12365)-----------------
    304D
      

  2.   

    --10进制转成 k进制度
    create function f_dido_10_k(@n int,@k int)
    returns varchar(8000)
    as
    begin
        declare @hex varchar(8000)
        declare @a varchar(16)
        set @hex=''
        set @a='0123456789ABCDEF'
        while (@n<>0)
        begin
          set @hex=@hex+cast(substring(@a,@n%@k+1,1) as varchar)
          set @n=@n/@k
        end
        return reverse(@hex)
    end---602 转成8进制
    select dbo.f_dido_10_k(602,8)1132