11

16 進数を 10 進数に変換する必要があるストアド プロシージャがあります。UNHEX() 関数のドキュメントを読みましたが、バイナリ値を返しています。私がやりたいことは次のようなものです:

CREATE PROCEDURE foo( hex_val VARCHAR(10) )
BEGIN
    DECLARE dec_val INTEGER;

    SET dec_val = UNHEX( hex_val );

    -- Do something with the decimal value
    select dec_val;
END

私は何が欠けていますか?UNHEX() された値を符号なし整数に変換するにはどうすればよいですか?

4

3 に答える 3

23

関数を使用してCONV()基数を変換できます。

SET dec_val = CONV(hex_val, 16, 10);
于 2008-12-08T20:40:55.723 に答える
8
conv(hex_val, 16, 10)

基数 16 の数値を基数 10 に変換します。UNHEX 関数はまったく異なる処理を行い、16 進数のペアを文字に変換します。

于 2008-12-08T20:39:43.057 に答える
7

問題を解決するはずのキャスト(conv(hex_val、16、10)を符号なし整数として)....

于 2010-04-09T09:25:53.227 に答える