説明
この関数は、パラメータ 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