将十进制转换为十六进制字符串,在mssql中不包含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.