説明
この関数は、パラメータ fmt で指定された単位の距離にある、指定日 date に最も近い日付時刻値を返します。返される日付値は date より前の日付です。
注意
関数 ROUND( ) の戻り値との違いは、TRUNC(date) が返す値は必ず date より前の、date に最も近い日付であるのに対し、ROUND( ) は date より前または後の、それに最も近い日付値になり得る点です。
構文
TRUNC(date,[fmt])
パラメータの説明
パラメータ |
説明 |
|---|---|
| date | DATE データ型。 |
| fmt | 関数の戻り値と date の距離単位を指定します。 |
次の表は fmt パラメータの取り得る値とその説明です。このパラメータは大文字小文字を区別しません。
fmtパラメータの値 |
説明 |
|---|---|
| j | デフォルト値。最新の 0 時の日付。 |
| day、dy、d | 指定日に最も近い日曜日を返します。 |
| month、mon、mm、rm | 指定日に最も近い月の1日を返します。 |
| q | 指定日に最も近い四半期の日付を返します。 |
| yyyy、yyy、yy、y | 複数の y は異なる精度を表し、指定日に最も近い年の1日を返します。 |
| cc、scc | 指定日に最も近い世紀の初日を返します。 |
戻り値の型
DATE データ型を返します。
例
TRUNC を使用して、現在時刻から最も近く、かつ条件を満たす日付値を計算します。
obclient> SELECT SYSDATE 当時の日付,
TRUNC(SYSDATE) 今日の日付,
TRUNC(SYSDATE,'DAY') 今週の日曜日,
TRUNC(SYSDATE,'MONTH') 今月の初め,
TRUNC(SYSDATE,'Q') 今四半期の初めの日付,
TRUNC(SYSDATE,'YEAR') 今年の初めの日付 FROM DUAL;
+--------------+--------------+-----------------+-----------+-----------------+-----------------+
| 当時の日付 | 今日の日付 | 今週の日曜日 | 今月の初め | 今四半期の初めの日付 | 今年の初めの日付 |
+--------------+--------------+-----------------+-----------+-----------------+-----------------+
| 18-NOV-21 | 18-NOV-21 | 14-NOV-21 | 01-NOV-21 | 01-OCT-21 | 01-JAN-21 |
+--------------+--------------+-----------------+-----------+-----------------+-----------------+
1 row in set