您的位置:首页 > 数据库

SQL之36进制转换成10进制数据

2009-09-11 15:27 477 查看
--创建人 :郑紫至

--创建日期:2009-9-10

--参数描述:@StrHex36 被转换36进制字串

--测试方法:SELECT dbo.ConvertHex36To10('A6ZQ2')

CREATE FUNCTION dbo.ConvertHex36To10

(@StrHex36 VARCHAR(100))

RETURNS INT

AS

BEGIN

DECLARE @StrHex36Len INT --被转换36进制字串的长度

DECLARE @Base36To10 INT --每位36进制基数对应的10进制数据大小

DECLARE @Index INT --字符串索引

DECLARE @Hex10 INT --被返回10进制数据

DECLARE @Base36 VARCHAR(1)--36进制基数

SET @Hex10=0

SET @StrHex36Len=LEN(@StrHex36)

SET @Index=1

WHILE @Index<=@StrHex36Len

BEGIN

SET @Base36=SUBSTRING(@StrHex36,@Index,1)

SET @Base36To10=CHARINDEX(@Base36,'0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ')-1

SET @Hex10=@Hex10+@Base36To10*POWER(36,@StrHex36Len-@Index)

SET @Index=@Index+1

END

RETURN @Hex10

END

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: