2012-03-28 22 views
1

SQL Serverでは、varchar(32)(0x81f2cf442269e111b99c1cc1deedf59cのような16進文字列)をbigintに変換することはできますか?varchar(32)をbigintに変換する

私はこれを試してみました:

select convert(bigint, convert (varbinary(16), '0x81f2cf442269e111b99c1cc1deedf59c', 1)) 

が、私はそれが高いと低い値で動作することはないと確信しています。

+0

なぜそんなことが必要ですか? –

+0

この文字列をbigint列に格納する – malinois

+0

これらの投稿はあなたに役立つかもしれないと思うhttp://blog.sqlauthority.com/2010/02/01/sql-server-question-how-to-convert-hex-to-decimal /とhttp://dpatrickcaldwell.blogspot.com/2009/05/converting-hexadecimal-or-binary-to.html –

答えて

4

SQL ServerでBIGINTにVARCHAR(32)( 0x81f2cf442269e111b99c1cc1deedf59cような16進数の文字列)に変換することができますか?

回答が2つあります。基本的には間違っています。

CAN NOT BE完了してください。誰もが最初に基本的な数学のチェックを実行していますか?

32 16進数= 16バイト。 ビング:8バイト。

すべてのコードは1つのものです。無用です。 16バイトの数値を持つ32進数の文字列を8バイトの数値に変換することはできません。非常に少数の場合のみ(上位8バイトはすべて0)。

0

私はあなたが以下の方法で行くことができたら幸いです。

DECLARE @HexValue Varchar(32) 
SET @HexValue = '0x81f2cf442269e111b99c1cc1deedf59c' 

Declare @Query NVARCHAR(100) 
Declare @Parameters NVARCHAR(50) 
Declare @ReturnValue BIGINT 

SET @Query = N'Select @Result = Convert(BIGINT,' + @HexValue + ')' 
SET @Parameters = N'@Result BIGINT output' 
EXEC MASTER.dbo.Sp_executesql @Query, @Parameters, @ReturnValue OUTPUT 

SELECT @ReturnValue 

お時間をいただきありがとうございます。

関連する問題