Bil*_*lıç 87 sql t-sql sql-server sql-server-2005
如何将列值从转换varbinary(max)
到varchar
人类可读的形式?
小智 136
以下表达式对我有用:
SELECT CONVERT(VARCHAR(1000), varbinary_value, 2);
Run Code Online (Sandbox Code Playgroud)
以下是关于样式选择的更多细节(第三个参数).
Mar*_*ith 81
"将a转换varbinary
为a varchar
"可能意味着不同的东西.
如果VARBINARY是一个字符串的SQL Server中的二进制表示(例如,通过铸造回到varbinary
直接或从DecryptByPassPhrase
或DECOMPRESS
功能),你只需CAST
它
declare @b varbinary(max)
set @b = 0x5468697320697320612074657374
select cast(@b as varchar(max)) /*Returns "This is a test"*/
Run Code Online (Sandbox Code Playgroud)
这相当于使用CONVERT
样式参数0
.
CONVERT(varchar(max), @b, 0)
Run Code Online (Sandbox Code Playgroud)
其他样式参数可CONVERT
用于不同的要求,如其他答案中所述.
小智 53
实际上最好的答案是
SELECT CONVERT(VARCHAR(1000), varbinary_value, 1);
Run Code Online (Sandbox Code Playgroud)
使用" 2
"切断了" 0x
"的开头varbinary
.
dma*_*kic 14
试试这个
SELECT CONVERT(varchar(5000), yourvarbincolumn, 0)
Run Code Online (Sandbox Code Playgroud)
小智 6
我尝试过这个,它对我有用:
declare @b2 VARBINARY(MAX)
set @b2 = 0x54006800690073002000690073002000610020007400650073007400
SELECT CONVERT(nVARCHAR(1000), @b2, 0);
Run Code Online (Sandbox Code Playgroud)