在SQL Server中将VarChar转换为VarBinary时出错
我需要将在SQL Server中将VarChar转换为VarBinary时出错,sql,sql-server,database,Sql,Sql Server,Database,我需要将varchar转换为varbinary。我使用的查询仅对某些值正常工作 这个很好用 SELECT CONVERT (VARBINARY(MAX), 'AFE27AF97DC6', 2) 而这个会抛出一个错误 将数据类型varchar转换为varbinary时出错 我需要使用样式2 我读过所有类似的问题,但我找不到解决办法。任何想法都会帮助我。谢谢大家! Hmm,AFEE27AF97DC6短了一个半字节,似乎只接受完整字节。试着把它调零。例如 SELECT convert(varbina
varchar
转换为varbinary
。我使用的查询仅对某些值正常工作
这个很好用
SELECT CONVERT (VARBINARY(MAX), 'AFE27AF97DC6', 2)
而这个会抛出一个错误
将数据类型varchar转换为varbinary时出错
我需要使用样式2
我读过所有类似的问题,但我找不到解决办法。任何想法都会帮助我。谢谢大家! Hmm,
AFEE27AF97DC6
短了一个半字节,似乎只接受完整字节。试着把它调零。例如
SELECT convert(varbinary(max), '0AFEE27AF97DC6', 2)
您还可以将其包装在大小写中
表达式中,检查字符串的长度是否为偶数或奇数(如果字符串是可变的)
SELECT convert(varbinary(max),
CASE
WHEN len('AFEE27AF97DC6') % 2 <> 0 THEN
concat('0', 'AFEE27AF97DC6')
ELSE
'AFEE27AF97DC6'
END,
2)
选择convert(varbinary(max),
案例
当len('AFEE27AF97DC6')%2 0时
concat('0','AFEE27AF97DC6')
其他的
“AFEE27AF97DC6”
完,,
2)
(用变量替换文字。)这一点在以下文件中非常明确: 1,2[对于第三个参数] 对于二进制数据类型,表达式必须是字符表达式。表达式必须具有偶数个十六进制数字(0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、A、B、C、D、E、F) 您的第一个字符串的长度为12,因此可以很好地进行转换。第二个长度为13,因此无效 我不确定您的意图,但第3个位置的
0
给出了两次转换的类似结果:
SELECT CONVERT(varbinary(max),'AFE27AF97DC6' , 2), CONVERT(varbinary(max),'AF0EE27AF97DC6' , 2)
给出:
0xAFE27AF97DC6 0xAF0EE27AF97DC6
您使用的是什么数据库?我使用的是Microsoft SQL是的,我已经阅读了文档。当我使用偶数长度时,有时会出现问题。谢谢你的帮助
0xAFE27AF97DC6 0xAF0EE27AF97DC6