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

问题描述 投票:0回答:1

我要转换

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”?

sql-server varbinary
1个回答
0
投票

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

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

输出:

4231
© www.soinside.com 2019 - 2024. All rights reserved.