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

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

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

慕后森 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

TA贡献1862条经验 获得超7个赞

将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
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

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


因此,例如:


SELECT 100, master.dbo.fn_varbintohexstr(100)

给你


查看完整回答
反对 回复 2019-12-03
  • 3 回答
  • 0 关注
  • 753 浏览
慕课专栏
更多

添加回答

举报

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