为了账号安全,请及时绑定邮箱和手机立即绑定

将整数转换为十六进制,并将十六进制转换为整数

/ 猿问

将整数转换为十六进制,并将十六进制转换为整数

慕后森 2019-12-03 11:00:40

因此,我signal_data在Sybase中有此查询(在列中),但在Microsoft SQL Server中不起作用:


HEXTOINT(SUBSTRING((INTTOHEX(signal_data)),5,2)) as Signal

我在Excel中也有它(其中A1包含值):


=HEX2DEC(LEFT(DEC2HEX(A1),LEN(DEC2HEX(A1))-2))

有谁知道我将如何在SQL Server中执行此操作?


查看完整描述

3 回答

?
牧羊人nacy

将INT转换为十六进制:


SELECT CONVERT(VARBINARY(8), 16777215)

将十六进制转换为INT:


SELECT CONVERT(INT, 0xFFFFFF)

更新2015-03-16

上面的示例有一个局限性,即仅在将HEX值指定为整数文字时才起作用。为了完整起见,如果要转换的值是十六进制字符串(例如在varchar列中找到),请使用:


-- If the '0x' marker is present:

SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))


-- If the '0x' marker is NOT present:

SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))

注意:字符串必须包含偶数个十六进制数字。奇数个数字将产生错误。


可以在CAST和CONVERT(Transact-SQL)的“二进制样式”部分中找到更多详细信息。我认为需要SQL Server 2008或更高版本。


查看完整回答
反对 回复 2019-12-03
?
慕仰8121524

实际上,内置函数名为master.dbo.fn_varbintohexstr。


因此,例如:


SELECT 100, master.dbo.fn_varbintohexstr(100)

给你


查看完整回答
反对 回复 2019-12-03
?
犯罪嫌疑人X

SQL Server等效于Excel基于字符串的DEC2HEX,HEX2DEC函数:


--Convert INT to hex string:

PRINT CONVERT(VARCHAR(8),CONVERT(VARBINARY(4), 16777215),2) --DEC2HEX


--Convert hex string to INT:

PRINT CONVERT(INT,CONVERT(VARBINARY(4),'00FFFFFF',2)) --HEX2DEC


查看完整回答
反对 回复 2019-12-03

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信