TRUNC (日付)
構文
trunc_date::=
目的
TRUNC
(日付)ファンクションは、時刻部分を書式モデルfmt
で指定された単位まで切り捨てたdate
を戻します。このファンクションは、NLS_CALENDAR
セッション・パラメータの影響を受けません。このファンクションはグレゴリオ暦の規則に従って動作します。戻される値は、date
に異なる日時データ型を指定した場合でも、常にDATE
データ型です。fmt
を省略すると、デフォルトの書式モデル'DD
'が使用され、午前0時(真夜中)を基準に切り捨てられたdate
の値が戻されます。fmt
で使用できる書式モデルは、「ROUNDおよびTRUNC日付ファンクション」を参照してください。
例
次の例では、日付を切り捨てます。
SELECT TRUNC(TO_DATE('27-OCT-92','DD-MON-YY'), 'YEAR') "New Year" FROM DUAL; New Year --------- 01-JAN-92
TRUNCを使用した日付の書式設定: 例
次の例では、TRUNC
ファンクションは、書式モデルの指定に従って、日付の時刻部分で入力日付を返します。
WITH dates AS ( SELECT date'2015-01-01' d FROM dual union SELECT date'2015-01-10' d FROM dual union SELECT date'2015-02-01' d FROM dual union SELECT timestamp'2015-03-03 23:45:00' d FROM dual union SELECT timestamp'2015-04-11 12:34:56' d FROM dual ) SELECT d "Original Date", trunc(d) "Nearest Day, Time Removed", trunc(d, 'ww') "Nearest Week", trunc(d, 'iw') "Start of Week", trunc(d, 'mm') "Start of Month", trunc(d, 'year') "Start of Year" FROM dates;
次の例では、入力日付の値が切り捨てられ、切り捨てられた日付値の分の部分を、TO_CHAR
ファンクションを使用して取得します。
WITH dates AS ( SELECT date'2015-01-01' d FROM dual union SELECT date'2015-01-10' d FROM dual union SELECT date'2015-02-01' d FROM dual union SELECT timestamp'2015-03-03 23:45:00' d FROM dual union SELECT timestamp'2015-04-11 12:34:56' d FROM dual ) SELECT d "Original Date", trunc(d) "Date with Time Removed", to_char(trunc(d, 'mi'), 'dd-mon-yyyy hh24:mi') "Nearest Minute", trunc(d, 'iw') "Start of Week", trunc(d, 'mm') "Start of Month", trunc(d, 'year') "Start of Year" FROM dates;
次の文は、現行のセッションの日付書式を変更します。
ALTER SESSION SET nls_date_format = 'dd-mon-yyyy hh24:mi';
次の例では、新しい日付書式でデータが表示されます。
WITH dates AS ( SELECT date'2015-01-01' d FROM dual union SELECT date'2015-01-10' d FROM dual union SELECT date'2015-02-01' d FROM dual union SELECT timestamp'2015-03-03 23:44:32' d FROM dual union SELECT timestamp'2015-04-11 12:34:56' d FROM dual ) SELECT d "Original Date", trunc(d) "Date, time removed", to_char(trunc(d, 'mi'), 'dd-mon-yyyy hh24:mi') "Nearest Minute", trunc(d, 'iw') "Start of Week", trunc(d, 'mm') "Start of Month", trunc(d, 'year') "Start of Year" FROM dates;
Live SQL:
TRUNCを使用した日付の書式設定で、Oracle Live SQLの関連例を表示し、実行します。