- カテゴリ:
EXTRACT¶
日付、時刻、またはタイムスタンプから指定された日付または時刻部分を抽出します。
Tip
タイムスタンプから日付を抽出するには、 TO_DATE 関数を使用します。
構文¶
EXTRACT( <date_or_time_part> FROM <date_time_or_timestamp_expr> )
EXTRACT( <date_or_time_part> , <date_time_or_timestamp_expr> )
引数¶
- date_or_time_part
- 時間の単位。 サポートされている日付と時刻の部分 (例: - month)にリストされている値のいずれかでなければなりません。値は文字列リテラルにすることも、引用符で囲まないようにすることもできます(例えば、- 'month'または- month)。- date_or_time_partが- week(またはそのバリエーション)の場合、出力は WEEK_START セッションパラメーターによって制御されます。
- date_or_time_partが- dayofweekまたは- 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;
+------+
| 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;
+-----------+
| DAYOFWEEK |
|-----------|
| Thursday  |
+-----------+
注釈
出力は、クエリを実行したときに SYSTIMESTAMP 関数から返される値に依存します。 DAYNAME 関数を使用して、指定した日付またはタイムスタンプから3文字の曜日名を抽出することもできます。