可以将varchar(32)(像0x81f2cf442269e111b99c1cc1deedf59c这样的十六进制字符串)转换为sql server中的bigint吗?
我试过这个:
select convert(bigint, convert (varbinary(16), '0x81f2cf442269e111b99c1cc1deedf59c', 1))
但我不确定它是否适用于更高和更低的值。
答案 0 :(得分:4)
可以转换varchar(32)(十六进制字符串,如 0x81f2cf442269e111b99c1cc1deedf59c)到sql server中的bigint?
2个答案与示例。两种根本错误。
不能完成。有人关心先进行基本的数学检查吗?
32十六进制= 16字节。 重做:8个字节。
你所有的代码都是一回事 - 毫无用处。您不能将具有16字节数字的32十六进制字符串转换为8字节数字。仅在极少数情况下(高8字节全部为0)。
答案 1 :(得分:0)
我希望你可以采取以下方式,请你试试吧。
DECLARE @HexValue Varchar(32)
SET @HexValue = '0x81f2cf442269e111b99c1cc1deedf59c'
Declare @Query NVARCHAR(100)
Declare @Parameters NVARCHAR(50)
Declare @ReturnValue BIGINT
SET @Query = N'Select @Result = Convert(BIGINT,' + @HexValue + ')'
SET @Parameters = N'@Result BIGINT output'
EXEC MASTER.dbo.Sp_executesql @Query, @Parameters, @ReturnValue OUTPUT
SELECT @ReturnValue
感谢您的时间。