当前位置: 代码迷 >> Sql Server >> sql server2000中怎么将十六进制转换为十进制
  详细解决方案

sql server2000中怎么将十六进制转换为十进制

热度:52   发布时间:2016-04-27 15:33:45.0
sql server2000中如何将十六进制转换为十进制
sql   server2000中如何将十六进制转换为十进制

------解决方案--------------------
CREATE FUNCTION dbo.fn_hex_to_dec(@s varchar(16))
RETURNS bigint
AS
BEGIN
--参数不得含 '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 @[email protected]+(CHARINDEX(SUBSTRING(@s,@i+1,1), '0123456789ABCDEF ')-1)*POWER(16,@i),@[email protected]+1
END
RETURN @result
END

  相关解决方案