小数点以下を切り捨てる、一の位を切り捨てる、十の位を・・・
⇒ 日付の切り捨て処理(TRUNCate)
TRUNC ( number [, integer] )
return [ number ]
number | 切り捨てを行なう数値式 | |
integer | 切り捨てする位(小数の桁数) | default 0 |
TRUNC(数値) 関数の内容
数値式 number を小数第 integer 位(省略時は 0)に切り捨てた値を戻す。
切り捨てする位 integer が負の場合は小数点の左桁、つまり整数部の指定桁以下が切り捨て対象となる。
TRUNC(数値) 使用例
SQL> select num, p, TRUNC(num,p) from trunc_sample;
NUM P TRUNC(NUM,P)
---------- ---------- ------------
123.456 2 123.45
123.456 1 123.4
123.456 0 123
123.456 -1 120
123.456 -2 100
123.456 -3 0
小数部だけを取り出す豆知識
MOD 関数を使用する
SQL> select mod(3.14159, 1) from dual;
MOD(3.14159,1)
--------------
.14159
SQL> select mod(3.14159, 0.1) from dual;
MOD(3.14159,0.1)
----------------
.04159
一般化したファンクション(指定桁以下の端数を取り出す)
- 指定桁の端数部を取り出す。(デフォルトは数値の小数部を取り出す)
CREATE FUNCTION TRUNC_MOD(P_NUM IN NUMBER, P_PLACE IN INTEGER := 0)
RETURN NUMBER
IS
BEGIN
RETURN MOD(P_NUM, 10 ** P_PLACE);
END;
/
SQL で記述するときは 10 ** P_PLACE は POWER に書き換える。
SQL 関数 - TRUNC 関連