カテゴリ:

日付と時刻の関数

EXTRACT

日付、時刻、またはタイムスタンプから指定された日付または時刻部分を抽出します。

Tip

タイムスタンプから日付を抽出するには、 TO_DATE 関数を使用します。

代替候補:

DATE_PARTHOUR / MINUTE / SECONDYEAR* / DAY* / WEEK* / MONTH / QUARTER

構文

EXTRACT( <date_or_time_part> FROM <date_time_or_timestamp_expr> ) 
Copy
EXTRACT( <date_or_time_part> , <date_time_or_timestamp_expr> ) 
Copy

引数

date_or_time_part

時間の単位。 サポートされている日付と時刻の部分 (例: month)にリストされている値のいずれかでなければなりません。値は文字列リテラルにすることも、引用符で囲まないようにすることもできます(例えば、 'month' または month)。

  • date_or_time_partweek (またはそのバリエーション)の場合、出力は WEEK_START セッションパラメーターによって制御されます。

  • date_or_time_partdayofweek または yearofweek (またはそれらのバリエーション)の場合、出力は WEEK_OF_YEAR_POLICY および WEEK_START セッションパラメーターによって制御されます。

例などの詳細については、 カレンダーの週と平日 をご参照ください。

date_time_or_timestamp_expr

日付、時刻、タイムスタンプ、または日付、時刻、タイムスタンプに評価できる式。

戻り値

NUMBER データ型の値を返します。

使用上の注意

現在、 date_or_timestamp_expr が DATE 値である場合、以下の date_or_time_part 値はサポートされていません。

  • epoch_millisecond

  • epoch_microsecond

  • epoch_nanosecond

その他の 日付と時刻の部分epoch_second を含む)がサポートされています。

year の部分を指定して、タイムスタンプから年を抽出します。

SELECT EXTRACT(year FROM TO_TIMESTAMP('2024-04-10T23:39:20.123-07:00')) AS YEAR; 
Copy
+------+ | YEAR | |------| | 2024 | +------+ 

現在の曜日の完全な名前を返すには、 EXTRACT を DECODE 関数と dayofweek の部分と一緒に使用します。

SELECT DECODE(EXTRACT(dayofweek FROM SYSTIMESTAMP()), 1, 'Monday', 2, 'Tuesday', 3, 'Wednesday', 4, 'Thursday', 5, 'Friday', 6, 'Saturday', 7, 'Sunday') AS DAYOFWEEK; 
Copy
+-----------+ | DAYOFWEEK | |-----------| | Thursday | +-----------+ 

注釈

出力は、クエリを実行したときに SYSTIMESTAMP 関数から返される値に依存します。 DAYNAME 関数を使用して、指定した日付またはタイムスタンプから3文字の曜日名を抽出することもできます。