MySQL で 10 進数にキャストする
-
DECIMAL(M,D)関数でCAST()を使用して、MySQL で 10 進数にキャストする -
CONVERT()をDECIMAL(M,D)関数と共に使用して、MySQL で 10 進数にキャストする
あるデータ型を別のデータ型にキャストする必要がある場合があります。 CAST() および CONVERT() 関数と DECIMAL(M,D) を使用して、MySQL で 10 進数にキャストする方法を次に示します。
DECIMAL(M,D) 関数で CAST() を使用して、MySQL で 10 進数にキャストする
CAST() 関数を使用して、あるデータ型を別のデータ型に変換できます。 HAVING、WHERE、および JOIN 句でよく使用されます。
コード例:
SELECT CAST(15 AS DECIMAL(4,2)) AS Decimal_Value;
出力:
+---------------+
| Decimal_Value |
+---------------+
| 15.00 |
+---------------+
1 row in set (0.00 sec)
上記のクエリを考慮して、int から decimal に変換しました。 10 進数データ型に変換するには、精度と位取りを指定する必要があることに注意してください。
2つのパラメータを取る DECIMAL(M,D) 関数を使用しました。 最初のパラメーターは精度を表し、2 番目のパラメーターはスケールを表します。
精度は有効桁数を示し、スケールは小数点以下の桁数を示します。
上記の例では、4 が精度で、2 が位取りです。 15 と書く代わりに列名を記載することもできます。
MySQL のドキュメント によると、FLOAT(M,D)、DECIMAL(M,D)、または DOUBLE(M,D) を使用する場合、M は D 以上でなければなりません。 . たとえば、次のクエリの M は 2 であり、D は 4 であり、M>=D という条件を満たさず、エラーが発生します。
SELECT CAST(15 AS DECIMAL(2,4)) AS Decimal_Value;
DECIMAL(M,0) の構文は DECIMAL(M) と同等であることを常に覚えておいてください。 同様に、10 進数の構文は、DECIMAL(M) および DECIMAL(M,0) と同等です。ここで、M のデフォルト値は 10 です。
次のクエリはすべて同じ出力を生成します。
コード例:
SELECT CAST(15 AS DECIMAL(4,0)) AS Decimal_Value;
SELECT CAST(15 AS DECIMAL(4)) AS Decimal_Value;
SELECT CAST(15 AS DECIMAL) AS Decimal_Value;
出力 (上記の 3つのクエリすべてに対して):
+---------------+
| Decimal_Value |
+---------------+
| 15 |
+---------------+
1 row in set (0.00 sec)
CONVERT() を DECIMAL(M,D) 関数と共に使用して、MySQL で 10 進数にキャストする
CONVERT() を DECIMAL(M,D) 関数と共に使用して、int から 10 進数にキャストすることもできます。 これは、上で説明した CAST() 関数に似ています。
コード例:
SELECT CONVERT(15, DECIMAL(4,2)) AS Decimal_Value;
出力:
+---------------+
| Decimal_Value |
+---------------+
| 15.00 |
+---------------+
1 row in set (0.00 sec)
