日期:2014-05-17 浏览次数:20747 次
create FUNCTION dbo.f_hex_dec(@s varchar(max))
RETURNS bigint
AS
BEGIN
DECLARE @i BIGINT ,
@result BIGINT
DECLARE @data BIGINT --添加了这个
SET @data =16
SELECT @i = 0 ,
@result = 0 ,
@s = RTRIM(LTRIM(UPPER(REVERSE(@s))))
WHILE @i < DATALENGTH(@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(@data, @i) ,
@i = @i + 1
END
RETURN @result
END
SELECT dbo.f_hex_dec('7a7a003500bc0001')
--8825366647431495681