此处必须忽略一些内容,此查询转换并比较十六进制中的值
select NAME, convert(varchar, convert(Varbinary(MAX), NAME),2), convert(varchar, convert(Varbinary(MAX), 'freddy'),2) from CUSTOMERS
工作正常,但正如您所看到的,从数据库检索的值填充了00空白
freddy 660072006500640064007900 667265646479
没想到......有什么方法可以放弃它们吗?
哦,另外的信息,00是unicode字符的规定,这很好,但是我只想要我的诅咒" freddy"匹配我检索到的" freddy"十六进制
感激地接受任何指导,欢呼
第二天通过添加额外的转换(varchar(MAX),USRPWRD)进行排序,这样;
convert(varchar, convert(Varbinary(MAX), convert(varchar(MAX), USRPWRD)),2)
返回此
667265646479
如果字段中需要unicode字符,那么就不会那么好了
另一天或两天......
现在我发现我的SQL查询只返回部分十六进制。这是我数据库中电子邮件地址的值;
whatever.happened@rumplestiltzken.com
这是转换为十六进制的电子邮件地址
77686174657665722E68617070656E65644072756D706C657374696C747A6B656E2E636F6D
这是我的查询的相关部分
convert(varchar, convert(Varbinary(MAX), convert(varchar(MAX), USREMAIL)),2)
这是它返回的内容,它正好是上面的完整十六进制字符串的前30个字符
77686174657665722E68617070656E
如何获得完整的十六进制..?求救!
已解决(最终vchar需要(MAX))
convert(varchar(MAX), convert(Varbinary(MAX), convert(varchar(MAX), USREMAIL)),2)