SQLServerで16進値を整数に変換する3つの方法を次に示します。
最初に、16進値を整数に変換できる2つのT-SQL関数があります。これらの関数に加えて、暗黙の変換の概念もあり、同じ結果を生成することもできます。
例1-CONVERT()関数
最初に確認する関数は、CONVERT()
です。 働き。これにより、SQLServerのデータ型間で変換できます。
この関数を使用して16進値を整数に変換する例を次に示します。
SELECT CONVERT(INT, 0xfcab) Result;
結果:
+----------+ | Result | |----------| | 64683 | +----------+
この場合、16進値fcab
を変換します (接頭辞0x
)整数に。
例2– CAST()関数
または、CAST()
を使用することもできます 前の例と同じことを行う関数:
SELECT CAST(0xfcab AS INT) Result;
結果:
+----------+ | Result | |----------| | 64683 | +----------+
CAST()
に注意してください およびCONVERT()
わずかに異なる構文を使用します。 CAST()
の場合 キャストされる値が最初に来ますが、CONVERT()
ではその逆です。 。
例3–暗黙の変換
これは、16進値に1を掛けるだけで、暗黙的な変換を実行する例です。
SELECT 0xfcab * 1 Result;
結果:
+----------+ | Result | |----------| | 64683 | +----------+
例4–結果のフォーマット
FORMAT()
を使用することもできます 最終結果をフォーマットする関数。この場合でも、変換関数を使用して実際の変換を実行します。 FORMAT()
も使用しているだけです 結果を数値としてフォーマットする関数(N
を使用) フォーマット指定子)。
SELECT FORMAT(CAST(0xfcab AS INT), 'N') Result;
結果:
+-----------+ | Result | |-----------| | 64,683.00 | +-----------+
この関数は実際には結果を文字列として返すことに注意してください。
FORMAT()
にも注意してください 関数は、数値および日付と時刻のデータ型のみを受け入れます。したがって、16進値を関数に直接渡すことはできません。それを行おうとすると、次のようになります。
SELECT FORMAT(0xfcab, 'N') Result;
結果:
Argument data type varbinary is invalid for argument 1 of format function.