将十进制转换为十六进制字符串,在SQL Server中不包含0x

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将十进制转换为十六进制字符串,在SQL Server中不包含0x相关的知识,希望对你有一定的参考价值。

我要转换

string
------
BB
C1
GB

to

hex
---
4242
4331
4742

使用中

SELECT CONVERT(BINARY(2), 'B1')

结果是'0x4231'

但是我想从结果中删除0x,所以我尝试将varbinary字符串:

SELECT CONVERT([VARCHAR](MAX), CONVERT(BINARY(2), 'B1', 2))

结果是''

然后我尝试了

SELECT SUBSTRING(CONVERT(BINARY(2), 'B1'), 2, 4)

结果是'0x42'

如何将“ B1”转换为“ 4231”?

答案

使用系统功能master.dbo.fn_varbintohexstr转换为十六进制,然后删除前两个字符。

SELECT SUBSTRING(master.dbo.fn_varbintohexstr(convert(binary(2), 'B1')),3,999)

输出:

4231

以上是关于将十进制转换为十六进制字符串,在SQL Server中不包含0x的主要内容,如果未能解决你的问题,请参考以下文章