SQL道場 算術関数 TRUNC/TRUNCATE関数

SQLで切り捨てをするTRUNC/TRUNCATE関数について記載しています。

対応データベースMySQL Oracle PostgreSQL DB2

TRUNC/TRUNCATE関数の文法

SELECT TRUNC(数値, 桁数) FROM テーブル
SELECT TRUNC(日付, 日付書式) FROM テーブル
SELECT TRUNCATE(数値, 桁数) FROM テーブル

引数数値数値型 数値(任意の数)
桁数整数型 数値(DB2は必須)
日付

丸める位置を書式モデルで指定する。

※Oracleのみ対応

日付 書式
書式説明
YEAR年(7月1日以降は翌年に切り上げ)
MONTH月(16日以降は翌月に切り上げ)
DD
HH
MM

※Oracleのみ対応

返値数値型 切り捨て後の値

TRUNC関数は指定された値の小数点以下を切り捨てます。桁数に小数点以下の何桁を有効にして切り捨てるかを指定することができます。Oracleでは日付を切り捨てることもできます。MySQL、DB2ではk多数の省略はできません。

実行例

MySQLの実行例

/* MySQL 切り捨てのサンプル */
SELECT 
	TRUNCATE(1.653,1) as TRUNCATE_value1    /* 正の少数第1位前を切り捨てる */
    ,TRUNCATE(-1.653,1) as TRUNCATE_value2  /* 負の少数第1位前を切り捨てる */
    ,TRUNCATE(0,1) as TRUNCATE_value3     /* ゼロの少数第1位を切り捨てる */
;
TRUNC/TRUNCATE関数サンプル実行結果