EXTRACT
EXTRACT
EXTRACT()는 날짜, 간격(interval), 시간 또는 타임스탬프에서 지정한 날짜 또는 시간 부분(part)을 추출해요.
타임스탬프에서 날짜를 추출하려면 TO_DATE 함수를 사용하세요.
대안(Alternatives):
DATE_PART , HOUR / MINUTE / SECOND , YEAR / DAY / WEEK / MONTH / QUARTER
본문
문법
EXTRACT( <date_or_time_part> FROM <date_interval_time_or_timestamp_expr> )
EXTRACT( <date_or_time_part> , <date_interval_time_or_timestamp_expr> )
인자
date_or_time_part
시간의 단위예요. 지원되는 날짜 및 시간 단위(Supported date and time parts)에 나열된 값 중 하나여야 해요(예: month). 값은 문자열 리터럴이거나 따옴표가 없는 값일 수 있어요(예: 'month' 또는 month). date_or_time_part가 week(또는 그 변형)일 때 출력은 WEEK_START 세션 매개변수에 따라 제어돼요. date_or_time_part가 dayofweek 또는 yearofweek(또는 그 변형)일 때 출력은 WEEK_OF_YEAR_POLICY와 WEEK_START 세션 매개변수에 따라 제어돼요. 예제를 포함한 자세한 내용은 달력 주와 평일(Calendar weeks and weekdays)을 참고하세요.
date_interval_time_or_timestamp_expr
날짜, 간격, 시간 또는 타임스탬프, 또는 그 데이터 타입 중 하나로 평가될 수 있는 표현식이에요.
반환
NUMBER 데이터 타입의 값을 반환해요.
사용 지침
-
date_interval_time_or_timestamp_expr이 연-월 간격 값일 때 지원되는date_or_time_part값은year와month예요. -
date_interval_time_or_timestamp_expr이 일-시간 간격 값일 때 지원되는date_or_time_part값은day,hour,minute,second,nanosecond예요. -
현재
date_interval_time_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 |
+------+
DECODE 함수와 dayofweek 부분과 함께 EXTRACT를 사용해 현재 요일의 전체 이름 반환:
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 함수를 사용해 지정한 날짜 또는 타임스탬프에서 요일의 세 글자 이름을 추출할 수 있어요.