十六进制数转换为十进制数

    技术2022-05-11  81

    CREATE FUNCTION dbo.f_hex_dec(@s varchar(16))RETURNS bigintASBEGIN--作者:pbsql--参数不得含'0'~'9'、'a'~'f'、'A'~'F'之外的任意字符(首尾空格除外),否则返回0  DECLARE @i int,@result bigint  SELECT @i=0,@result=0,@s=RTRIM(LTRIM(UPPER(REVERSE(@s))))  WHILE @i<LEN(@s)  BEGIN    IF SUBSTRING(@s,@i+1,1) not between '0' and '9' and SUBSTRING(@s,@i+1,1) not between 'A' and 'F'    BEGIN      SELECT @result=0      break    END    SELECT @result=@result+(CHARINDEX(SUBSTRING(@s,@i+1,1),'0123456789ABCDEF')-1)*POWER(16,@i),@i=@i+1  END  RETURN @resultENDGO


    最新回复(0)