MS SQL Server10进制和16进制之间的互相转换

MS SQL Server10进制和16进制之间的互相转换

 

在MS SQLServer中常常需要用到10进制和16进制之间的互相转换,下面来总结一下。这里会涉及到CONVERT函数:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

 

一、          十进制转换为十六进制

这个比较简单。可以利用CONVERT函数,如下:

SELECT CONVERT(VARBINARY, 988)

--返回0x000003DC

 

二、          十六进制转换为十进制

按理说,这个和上面一样,也比较简单:

DECLARE @VAR VARBINARY(100)

SELECT @VAR = CONVERT(VARBINARY, 988)

SELECT CONVERT(INT, @VAR)

--返回 988

 

但是在实际操作过程中,十六进制数常常是以字符串表示的,这个就比较麻烦了。

SELECT CONVERT(VARBINARY, '0X1')

--返回0x305831

它只是将字符串的ASCII码返回给十六进制数。所以想要正确转换,必须要用UDF函数。在MS SQL Server2008开始,CONVERT函数对VARBINARY提供了一个参数,用于转换十六进制。下面分别说明:

1.       MS SQL Server2008之前版本

就像刚才说的必须使用UDF函数。

CREATE FUNCTION BigInt2HexStr(@value BIGINT)

RETURNS VARCHAR(50)

AS

BEGIN

    DECLARE @seq CHAR(16)

    DECLARE @result VARCHAR(50)

    DECLARE @digit CHAR(1)

   

    SET @seq = '0123456789ABCDEF'

    --求十进制的@value除以的余数,找到余数对应十六进制的值

    SET @result = SUBSTRING(@seq, (@value%16)+1, 1)

 

    WHILE @value > 0

    BEGIN

        SET @digit = SUBSTRING(@seq, ((@value/16)%16)+1, 1)

        SET @value = @value/16

        IF @value <> 0

            SET @result = @digit + @result

    END

 

    RETURN @result

END

 

 

 

2.       MS SQL Server2008及以后版本

CONVERT函数提供了一个style参数:

 

style值

输出

0(默认值)

l  将 ASCII 字符转换为二进制字节,或者将二进制字节转换为 ASCII 字符。每个字符或字节按照 1:1 进行转换。

l  如果 data_type 为二进制类型,则会在结果左侧添加字符 0x。

1, 2

l  如果 data_type 为二进制类型,则表达式必须为字符表达式。expression 必须由数量为偶数的十六进制数字(0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、a、b、c、d、e、f)组成。如果将 style 设置为 1,字符 0x 必须为表达式中的前两个字符。如果表达式中包含的字符数为奇数或者包含任何无效的字符,则会引发错误。

l  如果转换后的表达式长度大于 data_type 长度,则会在右侧截断结果。

l  如果固定长度 data_types 大于转换后的结果,则会在结果右侧添加零。

l  如果 data_type 为字符类型,则表达式必须为二进制表达式。每个二进制字符均转换为两个十六进制字符。如果转换后的表达式长度大于 data_type 长度,则会在右侧截断结果。

l  如果 data_type 为固定大小的字符类型,并且转换后的结果长度小于其 data_type 长度,则会在转换后的表达式右侧添加空格,以使十六进制数字的个数保持为偶数。

l  对于 style 1,将在转换后的结果左侧添加字符 0x;而对于style2,则不添加字符0X。

 

利用这个参数,我们就可以非常方便地进行转换了:

SELECT CONVERT(INT, CONVERT(VARBINARY, '0X' + '12', 1))

--返回18

 

 

三、          参考文献

1.      http://www.cnblogs.com/gaizai/p/4001016.html

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 SQL Server 上进行二进制安装,可以按照以下步骤操作: 1. 下载 SQL Server 安装文件,并将其解压缩到本地文件夹。 2. 在解压缩的文件夹中,找到“setup.exe”,右键单击并选择“以管理员身份运行”。 3. 在“SQL Server Installation Center”窗口中,选择“Installation”选项卡,然后单击“New SQL Server stand-alone installation or add features to an existing installation”。 4. 接受许可协议,并等待安装程序检查系统兼容性。 5. 在“Setup Role”页面上,选择“SQL Server Feature Installation”。 6. 在“Feature Selection”页面上,选择要安装的 SQL Server 功能,并单击“Next”。 7. 在“Installation Rules”页面上,确保所有规则都通过,然后单击“Next”。 8. 在“Instance Configuration”页面上,选择要安装的 SQL Server 实例的名称和实例的根目录,并选择要使用的安全性模式。根据需要配置其他选项,然后单击“Next”。 9. 在“Server Configuration”页面上,配置 SQL Server 数据库引擎和 SQL Server Agent 的服务帐户和密码。根据需要配置其他选项,然后单击“Next”。 10. 在“Database Engine Configuration”页面上,根据需要配置数据库引擎身份验证模式、数据文件和日志文件的位置以及其他选项。根据需要配置其他选项,然后单击“Next”。 11. 在“Ready to Install”页面上,查看安装摘要,确保所有配置都正确,然后单击“Install”。 12. 等待安装程序完成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值