在sql2005里,一个类型为varbinary(MAX)字段数据如何转为十进制数据?

解决方案 »

  1.   

    declare @s varchar(max)
    set @s='38746243'
    select convert(int,@s)
    --如果你的字符太长了,那就要转为float型:
    set @s='8273468728237848743'
    select convert(float,@s)/*-----------
    38746243(1 行受影响)----------------------
    8.27346872823785E+18(1 行受影响)*/发
      

  2.   

    SELECT CAST(278 AS  VARBINARY(8))SELECT CAST(0x00000116 AS INT)
    這樣?
      

  3.   

    看成varchar(max)了!
    这样行不:
    declare @b varbinary(MAX)
    set @b=0x64a80ec2
    select convert(int,@b)
    /*
    -----------
    1688735426(1 行受影响)*/
      

  4.   


    --首先要判断该字符窜是否为数字
    declare @b varbinary(MAX)
    set @b='123456789'
    select isnumeric(@b)
    --返回1则是数据,否则不是,然后再转换
    --再看数值长度,转换时,需选择数据类型
    select convert(int,@b)
    select convert(float,@b)
    select convert(numeric(20,4),@b)