gpt4 book ai didi

sql-server - 如何在 SQL Server 2005 中将十六进制字符串转换为二进制?

转载 作者:行者123 更新时间:2023-12-04 16:04:13 25 4
gpt4 key购买 nike

如何将 SQL Server 中的十六进制字符串转换为二进制字符串?

更好的是,我如何将 SQL Server 中的十六进制字符串转换为整数?

问题是 Stackoverflow 上的每个现有答案都假定 SQL Server 2008。

失败的尝试

编辑

...是的,2005 年有 varbinary。甚至 2000 都有 varbinary:

SELECT name, xtype FROM systypes WHERE name LIKE '%binary%'; 
SELECT @@version;

name xtype
--------- -----
varbinary 165
binary 173

(No column name)
---------------------------------
Microsoft SQL Server 2000 - 8.00.2039 (Intel X86)
May 3 2005 23:18:38
Copyright (c) 1988-2003 Microsoft Corporation
Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

Even SQL Server 6.5 has varbinary. *( archive )*有趣且典型的 SO 时尚,试图规避问题而不是回答问题。

最佳答案

适用于可以表示为 bigint 的值

DECLARE @Hex VARCHAR(10)='0x3078'
DECLARE @DecValue BIGINT=0
DECLARE @Power TINYINT = 0

SET @Hex=REVERSE(REPLACE(@Hex,'0x',''))
WHILE LEN(@Hex)>0
BEGIN
SET @DecValue=@DecValue+(POWER(16,@Power)*CONVERT(TINYINT,LEFT(@Hex,1)))
SET @Power=@Power+1
SET @Hex=RIGHT(@Hex,LEN(@Hex)-1)
END

SELECT @DecValue AS [Decimal value]

关于sql-server - 如何在 SQL Server 2005 中将十六进制字符串转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49389085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com