将十进制转换为十六进制字符串,在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的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中将十六进制值从 SQL Server 转换为日期时间

试图从 c# 字符串转换为 SQL 二进制文件

如何将具有十进制值的数字转换为PL / SQL中的浮点数?

将 DB2 SQL 十进制转换为 DATE

sql Server如何编写函数实现把十进制数转换为二进制数?求大神相助!!

如何在python中将十六进制字符串转换为二进制以使用cx_oracle插入