カテゴリ:

日付と時刻の関数

TRUNC

日付、時刻、またはタイムスタンプを指定された部分で切り捨てます。例えば、タイムスタンプを四半期に切り捨てると、元のタイムスタンプの四半期の最初の日の午前0時に対応するタイムスタンプが返されます。

DATE_TRUNC の代替構文を提供します(2つの引数を逆にします)。

注釈

この関数はオーバーロードされています。 数値式を切り捨てる数値式 としても使用できます。

構文

TRUNC( <date_or_time_expr>, <date_or_time_part> )

引数

  • 日付または時刻式 これは、 DATE または TIMESTAMP に評価される式でなければなりません。

  • 日付または時刻部分 これは、 サポートされている日付と時刻の部分 にリストされている値のいずれかでなければなりません。

戻り値

関数は常に DATEを返します。

完全な日付にします(年、月、日)。切り捨てでは、月と日は削除されません。代わりに、指定された期間の最も早い日付に設定します。例えば、 TRUNC(TO_DATE('2013-08-05'), 'QUARTER') は、2013年の第3四半期の最初の日付、つまり2013年7月1日を返します。

使用上の注意

以下の例は、日付の切り捨てを示しています。すべての場合において、結果は月と日を含む完全な日付ですが、 日付または時刻式 および 日付または時刻部分 で指定された期間の最も早い日付になります。

select trunc(to_date('2013-05-08'), 'MONTH');
+---------------------------------------+
| TRUNC(TO_DATE('2013-05-08'), 'MONTH') |
|---------------------------------------|
| 2013-05-01                            |
+---------------------------------------+
select trunc(to_date('2013-05-08'), 'QUARTER');
+-----------------------------------------+
| TRUNC(TO_DATE('2013-05-08'), 'QUARTER') |
|-----------------------------------------|
| 2013-04-01                              |
+-----------------------------------------+
select trunc(to_date('2013-05-08'), 'YEAR');
+--------------------------------------+
| TRUNC(TO_DATE('2013-05-08'), 'YEAR') |
|--------------------------------------|
| 2013-01-01                           |
+--------------------------------------+