0x0A99B5609436FB43BEDF4EEC99681D41 转换为10进制是多少?

解决方案 »

  1.   

    结果为256528declare @b varbinary(50),@i int,@m int
    select @b=0x0A99B5609436FB43BEDF4EEC99681D41
    set  @i=16
    set @m=0
    while @i>=0
    begin
      set @m=@m+convert(int, substring(@b,@i,1)+substring(@b,@i-1,1))
      set @i=@i-2
    end
    select @b,@m
      

  2.   

    不对,应该是1622513930
    declare @b varbinary(50)
    select @b=0x0A99B5609436FB43BEDF4EEC99681D41
    select convert(int, substring(@b,16,1)+substring(@b,15,1)+substring(@b,14,1)+ substring(@b,13,1)+ substring(@b,12,1)
    + substring(@b,11,1)+ substring(@b,10,1)+ substring(@b,9,1)+ substring(@b,8,1)+ substring(@b,7,1)+ substring(@b,6,1)
    + substring(@b,5,1)+ substring(@b,4,1)+ substring(@b,3,1)+ substring(@b,2,1)+ substring(@b,1,1))
      

  3.   

    是:12221456611586061371
    SQL里越界了吧