説明
この関数は、パラメータ 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は異なる精度を表し、指定された日付に最も近い年の最初の日付を返します。 |
| 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