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

MySQLのTRUNCATE関数で小数点以下を切り捨てて整数値に変換する方法

MySQLのTRUNCATE関数とは

MySQLでは、TRUNCATE()関数を使うことで、小数点以下を単純に切り捨てて整数値を取得できます。たとえば、190.245という値は190に変換されます。四捨五入ではなく、純粋に切り捨てたい場合に便利な関数です。

基本構文

TRUNCATE関数の基本構文は次のとおりです。第2引数に「0」を指定すると、小数点以下がすべて切り捨てられます。

select truncate(yourColumnName,0) from yourTableName;

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。ここでは、小数第4位まで格納できるDECIMAL(10,4)型のカラムを持つテーブルを定義します。

mysql> create table DemoTable
    -> (
    -> Value DECIMAL(10,4)
    -> );
Query OK, 0 rows affected (0.67 sec)

レコードの挿入

INSERT文を使って、テスト用のデータをいくつか登録します。

mysql> insert into DemoTable values(45.567);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable values(100.0000);
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values(15.89000);
Query OK, 1 row affected (0.25 sec)

登録データの確認

SELECT文で、テーブルに登録された全レコードを表示します。

mysql> select *from DemoTable;

出力結果

上記のクエリを実行すると、次のような結果が得られます。

+----------+
| Value    |
+----------+
| 45.5670  |
| 100.0000 |
| 15.8900  |
+----------+
3 rows in set (0.00 sec)

TRUNCATE関数で小数を切り捨てる

それでは、TRUNCATE関数を使って小数点以下を切り捨て、整数値として結果を取得してみましょう。

mysql> select truncate(Value,0) from DemoTable;

出力結果

実行すると、各レコードの小数点以下が切り捨てられた整数値が返されます。

+-------------------+
| truncate(Value,0) |
+-------------------+
| 45                |
| 100                |
| 15                 |
+-------------------+
3 rows in set (0.00 sec)

補足:ROUND関数との違い

TRUNCATE関数は単純な切り捨てを行うのに対し、ROUND関数は四捨五入を行います。たとえば45.567の場合、TRUNCATEでは「45」、ROUNDでは「46」という結果になります。目的に応じて両者を使い分けるとよいでしょう。

  1. MySQLのサブクエリでIN()を使って複数の結果を返す方法をわかりやすく解説

    MySQLでは、IN() 演算子をサブクエリと組み合わせることで、複数の結果を簡単に取得できます。IN()は、指定したリストやサブクエリが返す値の中に一致するものが存在するかどうかを判定するための演算子であり、条件に合致する複数行を一度に抽出する際に非常に便利です。この記事では、実際にテーブルを作成し、サブクエリでIN()を使用して複数のレコードを返す手順を順番に解説します。1. テーブルを作成するまず、以下のコマンドでサンプル用のテーブルを作成します。mysql> create table DemoTable1317 -> ( -> Id int NOT NULL AUTO

  2. MySQLのCOLLATE句を使って大文字小文字を区別した正確な文字列値を検索する方法

    MySQLでは、デフォルトの照合順序(utf8_general_ci など)を使用している場合、文字列の検索は大文字と小文字を区別せずに行われます。しかし、「MySQL」と「MYSQL」のように大文字・小文字の違いまで含めて完全に一致するレコードだけを取得したいケースもあります。そんなときに役立つのが COLLATE 句とバイナリ照合順序(utf8_bin)です。サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable1620 -> ( -> Subject varchar(20) -> )