Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLで小数点以下を切り捨てるにはFLOOR関数を使う

SQLで値を切り捨てて結果を取得したい場合がありますよね。

値を切り捨てを行いたい場合は「FLOOR関数」を使いましょう。

この記事では、FLOOR関数の使い方を解説します。

FLOOR関数の使い方

FLOOR関数は次のように記述して使います。

SELECT FLOOR(値);

FLOORのカッコ内に、切り捨てしたい値を記述しましょう。

では実際にSQLを操作して確認してみます。

次のテーブルを用意しました。

mysql> SELECT * FROM sample_table;
+------+--------+---------+
| id | name | data |
+------+--------+---------+
| 1 | Sasaki | 123.567 |
| 2 | Itou | 231.445 |
| 3 | Yusa | 156.729 |
| 4 | Koga | 98.39 |
| 5 | Minami | 226.19 |
+------+--------+---------+
5 rows in set (0.00 sec)

上記テーブルの dataカラム の数値を切り捨てて取得してみましょう。

次のように記述します。

SELECT FLOOR(data) FROM sample_table;

値を記述するカッコ内に、 dataカラム を記述します。

そうすることで、すべてのデータの dataカラム の値を切り捨てできます

上記SQL文を実行すると、次のように結果取得できるはずです。

mysql> SELECT FLOOR(data) FROM sample_table;
+-------------+
| FLOOR(data) |
+-------------+
| 123 |
| 231 |
| 156 |
| 98 |
| 226 |
+-------------+
5 rows in set (0.00 sec)

ちゃんと小数点以下の値が切り捨てられています!

切り捨てる桁を指定するにはTRUNCATE関数を使う

先ほどの例で値を切り捨てる方法を確認しました。

値を切り捨てたことで小数値を整数値にできましたよね。

では、切り捨てる桁位置を調整したい場合についても確認しましょう。

FLOOR関数は「引数以下のもっとも大きな整数値を返す」ため、切り捨てる桁の指定はできません。

そのため、TRUNCATE関数を使いましょう!

TRUNCATE関数は、引数に指定した値の小数点以下を切り捨てたり、テーブル内のデータを削除できる関数です。

切り捨てる桁位置を指定するには、TRUNCATE関数内をカンマ区切りで分けて指定します。

SELECT TRUNCATE(値, 小数桁);

例えば、小数第一位で切り捨てたい場合は小数桁の部分に「1」と記述しましょう。

切り捨てる桁を指定した場合の動作も、実際に確認してみましょう。

次のように記述します。

SELECT TRUNCATE(data, 1) FROM sample_table;

上記SQL文を実行すると、次のように結果を取得できるはずです。

mysql> SELECT TRUNCATE(data, 1) FROM sample_table;
+-------------------+
| TRUNCATE(data, 1) |
+-------------------+
| 123.5 |
| 231.4 |
| 156.7 |
| 98.3 |
| 226.1 |
+-------------------+
5 rows in set (0.00 sec)

同じ要領で小数第二位を切り捨てたい場合は「2」を指定します。

mysql> SELECT TRUNCATE(data, 2) FROM sample_table;
+-------------------+
| TRUNCATE(data, 2) |
+-------------------+
| 123.56 |
| 231.44 |
| 156.72 |
| 98.38 |
| 226.19 |
+-------------------+
5 rows in set (0.00 sec)

逆に、小数桁の値をマイナスにすると一の位、十の位で切り捨てになります。

mysql> SELECT TRUNCATE(data, -1) FROM sample_table;
+--------------------+
| TRUNCATE(data, -1) |
+--------------------+
| 120 |
| 230 |
| 150 |
| 90 |
| 220 |
+--------------------+
5 rows in set (0.00 sec)

このように、TRUNCATE関数を使うと切り捨てたい箇所を指定可能です。

マイナス値を切り捨てる時には?

SQLで切り捨てを行う際に、マイナスの値が入ったデータを操作することもありますよね。

マイナスの値を切り捨てるときは TRUNCATE関数 を使いましょう。

なぜなら、FLOOR関数を使うと誤差が出るためです。

実際にSQLを操作して確認してみましょう。

次のように dataカラム にマイナス値を入れたデータを追加しました。

mysql> SELECT * FROM sample_table;
+------+--------+---------+
| id | name | data |
+------+--------+---------+
| 1 | Sasaki | 123.567 |
| 2 | Itou | 231.445 |
| 3 | Yusa | 156.729 |
| 4 | Koga | 98.39 |
| 5 | Minami | 226.19 |
| 6 | Ueki | -54.12 |
+------+--------+---------+
6 rows in set (0.00 sec)

上記の状態でFLOOR関数を実行すると、次のように結果を取得できました。

mysql> SELECT FLOOR(data) FROM sample_table;
+-------------+
| FLOOR(data) |
+-------------+
| 123 |
| 231 |
| 156 |
| 98 |
| 226 |
| -55 |
+-------------+
6 rows in set (0.00 sec)

6番目のデータが「-55」となっており、切り上げされてしまったいますよね。

このように、FLOOR関数をマイナス値に使うと切り上げされてしまうのです。

そのため、TRUNCATE関数を使って同じように実行してみましょう。

次のようにちゃんと意図した結果が返ってきます。

mysql> SELECT TRUNCATE(data, 0) FROM sample_table;
+-------------------+
| TRUNCATE(data, 0) |
+-------------------+
| 123 |
| 231 |
| 156 |
| 98 |
| 226 |
| -54 |
+-------------------+
6 rows in set (0.00 sec)

TRUNCATE関数の第二引数に「0」を指定することで、整数で結果を取得可能です。

ポテパンダの一言メモ

マイナスの値を切り捨てたい場合は、TRUNCATE関数を使いましょう!

SQLで値を切り捨てる方法まとめ

SQLで値を切り捨てる方法について紹介しました!

値を切り捨てるには FLOOR関数 と TRUNCATE関数 が使えます。

FLOOR関数は、数値を切り捨てて整数で取得したい場合に使用可能です。

一方、TRUNCATE関数は、小数桁を指定したい場合やマイナス値を切り捨てたい場合に使いましょう!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。