【发布时间】:2018-03-20 16:09:24
【问题描述】:
如何将 SQL Server 中的十六进制字符串转换为二进制?
更好的是,如何将 SQL Server 中的十六进制字符串转换为整数?
问题在于 Stackoverflow 上的每个现有答案都假定 SQL Server 2008。
尝试失败
-
Convert hex string to binary SQL Server
SELECT CONVERT(binary(16),'0x01',1) 0x30783031000000000000000000000000 -
SQL Server hex string to varbinary conversion
select CONVERT(varbinary(max), '0x01', 1); 0x30783031 select CONVERT(varbinary(max), '01', 2); 0x3031 -
Convert integer to hex and hex to integer
-- If the '0x' marker is present: SELECT CONVERT(INT, CONVERT(VARBINARY, '0x000001', 1)) 808464433 -- If the '0x' marker is NOT present: SELECT CONVERT(INT, CONVERT(VARBINARY, '000001', 2)) 808464433
编辑
...是的 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 时尚,试图绕过问题而不是回答问题。
【问题讨论】:
-
SQL 在 2005 年甚至有 varbinary 数据类型吗?
标签: sql-server sql-server-2005