MySQL の CAST() 関数は、式で指定されたあるデータ型から別のデータ型に値を変換するために使用されます。これは主に WHERE、HAVING、JOIN 句と一緒に使用されます。この関数は、次の CONVERT() 関数に似ています。 MySQL 。
この関数が完全に機能するデータ型は次のとおりです。
データ・タイプ | 説明 |
---|---|
日付 | 値を「YYYY-MM-DD」形式の DATE データ型に変換します。 「1000-01-01」から「9999-12-31」までの DATE の範囲がサポートされます。 |
日付時刻 | 値を「YYYY-MM-DD HH:MM:SS」形式の DATETIME データ型に変換します。 「1000-01-01 00:00:00」から「9999-12-31 23:59:59」までの範囲をサポートします。 |
時間 | 値を「HH:MM:SS」形式の TIME データ型に変換します。 「-838:59:59」から「838:59:59」までの時間範囲をサポートします。 |
チャー | 値を、固定長文字列を含む CHAR データ型に変換します。 |
10進数 | 値を 10 進数文字列を含む DECIMAL データ型に変換します。 |
署名入り | 値を、符号付き 64 ビット整数を含む SIGNED データ型に変換します。 |
署名なし | 値を、符号なし 64 ビット整数を含む UNSIGNED データ型に変換します。 |
バイナリ | 値を、バイナリ文字列を含む BINARY データ型に変換します。 |
構文
MySQL の CAST() 関数の構文は次のとおりです。
CAST(expression AS datatype);
パラメータの説明
この構文は、以下で説明する 2 つのパラメーターを受け入れます。
パラメータ | 要件 | 説明 |
---|---|---|
表現 | 必須 | これは、別の特定のデータ型に変換される値です。 |
データ・タイプ | 必須 | これは、式の値を変換する必要がある値またはデータ型です。 |
戻り値
変換後、変換したいデータ型の値が返されます。
MySQL バージョンのサポート
CAST 関数は、次の MySQL バージョンをサポートできます。
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
次の例で MySQL CAST() 関数を理解しましょう。 CAST 関数を SELECT ステートメントで直接使用できます。
例1
このステートメントは、値を DATE データ型に変換します。
SELECT CAST('2018-11-30' AS DATE);
出力
例 2
このステートメントは、値を SIGNED データ型に変換します。
SELECT CAST(3-6 AS SIGNED);
出力
例 3
このステートメントは、値を UNSIGNED データ型に変換します。
SELECT CAST(3-6 AS UNSIGNED);
出力
例 4
文字列を明示的に整数に変換する必要がある場合があります。値を INTEGER データ型に変換するには、次のステートメントを使用します。
SELECT (3 + CAST('3' AS SIGNED))/2;
出力
例5
次のステートメントは、まず整数値を文字列データ型に変換し、次に別の指定された文字列との連結を実行します。
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
出力
例6
この例では、CAST 関数がテーブルに対してどのように動作するかを見ていきます。まずテーブルを作成しましょう ' 注文 ' これには次のデータが含まれます。
上の表では、Order_Date が DATE データ型であることがわかります。ここで、選択した時間範囲内の製品名を取得したい場合は、以下のステートメントを実行します。ここでは、WHERE 条件を評価する前にリテラル文字列がタイムスタンプ値に変換されます。
SELECT Order_ID, Product_Name FROM Orders WHERE Order_Date BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
このステートメントは次の出力を生成します。