将十进制转换为十六进制字符串,在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 转换为日期时间