MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでDECIMAL型をINT型にキャストする方法

MySQLのFLOOR()関数を使ってDECIMALをINTに変換する

MySQLでは、FLOOR()関数を使用することで、DECIMAL(10進数)型の値をINT(整数)型へ簡単に変換できます。FLOOR()は小数点以下を切り捨てて整数値を返す関数です。

基本構文

構文は以下の通りです。

SELECT FLOOR(カラム名) FROM テーブル名 WHERE 条件;

それでは、実際にサンプルテーブルを作成して動作を確認してみましょう。

サンプルテーブルの作成

まず、以下のクエリでテーブルを作成します。Amountカラムは小数第1位まで格納できるDECIMAL(3,1)型として定義しています。

mysql> create table DecimalToIntDemo
-> (
-> Amount DECIMAL(3,1)
-> );
Query OK, 0 rows affected (0.88 sec)

データの挿入

次に、INSERTコマンドを使ってレコードを挿入します。

mysql> insert into DecimalToIntDemo values(12.5);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DecimalToIntDemo values(50.4);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DecimalToIntDemo values(48.6);
Query OK, 1 row affected (0.10 sec)

登録データの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DecimalToIntDemo;

実行結果は以下の通りです。

+--------+
| Amount |
+--------+
| 12.5 |
| 50.4 |
| 48.6 |
+--------+
3 rows in set (0.00 sec)

このように、小数を含む値が3件登録されていることが確認できます。

FLOOR()関数でINTへのキャストを実行

ここで、冒頭で紹介した構文を適用し、FLOOR()関数を使ってDECIMALの値を整数に変換します。条件として「Amount > 10」を指定しています。

mysql> SELECT FLOOR(Amount) from DecimalToIntDemo
-> where Amount > 10;

実行結果は以下の通りです。DECIMALの値がINTに変換されているのがわかります。

+---------------+
| FLOOR(Amount) |
+---------------+
| 12 |
| 50 |
| 48 |
+---------------+
3 rows in set (0.00 sec)

実行結果のポイント

上記のサンプル結果を見ると、「12.5」「50.4」「48.6」といった小数を含む値が、それぞれ「12」「50」「48」という純粋な整数(INT)値に変換されています。FLOOR()関数は小数点以下を切り捨てるため、四捨五入ではなく切り捨て処理になる点に注意してください。

なお、四捨五入したい場合はROUND()関数、切り上げたい場合はCEILING()関数を使用することで、同様にINT型の結果を得ることができます。用途に応じて使い分けると良いでしょう。

  1. MySQLで行を削除する方法|DELETE文の基本と実行例を解説

    MySQLでテーブルから特定の行(レコード)を削除するには、DELETE文を使用します。この記事では、実際にサンプルテーブルを作成し、DELETE文を使って行を削除する手順を順番に解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(100), -> Cus

  2. 【MySQL】FLOOR()関数を使って小数部分が整数(.00)のレコードだけを抽出する方法

    DECIMAL型のカラムから「55.00」や「9.00」のように小数部分が0(整数値と等しい)レコードだけを取り出したい場合、FLOOR()関数を使うと簡単に実現できます。FLOOR()関数による抽出の考え方FLOOR()は引数の値を切り捨てて整数にする関数です。元の値とFLOOR()した値が一致していれば、その値は小数部分を持たない(小数点以下が0の)数値だと判断できます。たとえば、5.23、8.76、12.00、22.68といったレコードの中から、12.00のようなレコードのみを抽出するイメージです。1. テーブルを作成するまず、検証用のテーブルを作成します。mysql> creat