sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)でHEXをINTに変換する3つの方法

    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.
    

    1. PL / SQLでループを使用せずに1から10を印刷するにはどうすればよいですか?

    2. MariaDBクラスターにMaxCtrlを使用したMaxScale基本管理

    3. OracleDatabaseでサポートされている言語のリスト

    4. SQL Serverは、最新の値のみを使用して個別の行を選択します