小数点以下を切り捨てる、一の位を切り捨てる、十の位を・・・

日付の切り捨て処理(TRUNCate)

syntax

TRUNC ( number [, integer] )
return [ number ]

parameter

number切り捨てを行なう数値式
integer切り捨てする位(小数の桁数)default 0

return

  • 切り捨てられた数値

avail

  • SQL および PL/SQL の両方で使用可能。

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 関連

 
アルファベット別 関数一覧 ショートカット
ABCDEFG
HILMNOP
RSTUVWX
日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー