54

varbinaryT-SQL で型から文字列型に変換したい

例を次に示します。

まずこれを手に入れたvarbinary

0x21232F297A57A5A743894A0E4A801FC3

そして、私はそれをに変換したい

21232f297a57a5a743894a0e4a801fc3

これを行う方法?

4

6 に答える 6

86

試す:

DECLARE @varbinaryField varbinary(max);
SET @varbinaryField = 0x21232F297A57A5A743894A0E4A801FC3;

SELECT CONVERT(varchar(max),@varbinaryField,2), 
@varbinaryField

更新: SQL Server 2008 の場合

于 2012-08-27T09:12:22.373 に答える
13

これは古い質問であることは承知していますが、状況によってはより役立つ別のアプローチを次に示します。master.dbo.fn_varbintohexstr 関数は、少なくとも SQL2K 以降の SQL Server で利用できると思います。完全を期すためにここに追加します。一部の読者は、この関数のソース コードを参照することも有益です。

declare @source varbinary(max);
set @source = 0x21232F297A57A5A743894A0E4A801FC3;
select varbin_source = @source
,string_result = master.dbo.fn_varbintohexstr (@source)
于 2013-12-19T09:21:56.623 に答える
7

VARBINARY単一の値をVARCHAR( )に変換したい場合はSTRING、次のように変数を宣言することで実行できます。

DECLARE @var VARBINARY(MAX)
SET @var = 0x21232F297A57A5A743894A0E4A801FC3
SELECT CAST(@var AS VARCHAR(MAX))

テーブルの列から選択しようとしている場合は、次のようにすることができます。

SELECT CAST(myBinaryCol AS VARCHAR(MAX))
FROM myTable
于 2012-08-27T09:12:06.820 に答える
3

これは、SQL2005と2008の両方で機能します。

declare @source varbinary(max);
set @source = 0x21232F297A57A5A743894A0E4A801FC3;
select cast('' as xml).value('xs:hexBinary(sql:variable("@source"))', 'varchar(max)');
于 2012-08-27T09:13:24.603 に答える