我需要将带有十六进制数的VARCHAR
转换为INT
,我试过了:
DECLARE @H VARCHAR(2);
SELECT @H = '9a'
SELECT CONVERT(INT, 0x + @H)
但它说@H
必须是VARBINARY
,如果我演员,我会得到一个完全不同的数字。
从'9a'
我想获得154
,我该如何实现?
答案 0 :(得分:3)
如果在2008年以上,您可以使用
Select @Value = Cast(CONVERT(varbinary(4), '0x' + @HexValue, 1) As int)
答案 1 :(得分:1)
答案 2 :(得分:1)
Declare @HexValue varchar(10)
Set @HexValue = '9a'
Declare @Sql nvarchar(max)
Declare @Value int
Set @Sql = 'Select @Value = Cast(Cast(0x' + @HexValue + ' as varbinary(4)) As int)'
exec sp_executesql @Sql, N'@Value int OUTPUT', @Value OUTPUT
Select @Value