EXTRACT Function
EXTRACT(field FROM source)
datetime 또는 interval 표현식에서 년, 월, 일 또는 시간 등 특정 값을 추출하기 위해 사용됩니다.
매개변수
field
- source에서 추출하고자 하는 특정 값입니다.
source
- 추출되는 값으로 DATE, INTERVAL, TIMESTAMP의 타입으로 설정합니다.
source의 타입 | 추출 가능한 값(field) |
DATE | YEAR, MONTH, DAY |
INTERVAL YEAR TO MONTH | YEAR, MONTH |
INTERVAL DAY TO SECOND | DAY, HOUR, MINUTE, SECOND |
TIMESTAMP | YEAR, MONTH, DAY, HOUR, MINUTE, SECOND |
[source에서 추출할 수 있는 field]
특징
- 필드의 값이 TIMEZONE_REGION 또는 TIMEZONE_ABBR이 매개변수로 설정되면 VARCHAR2를 반환합니다.
- 필드의 값이 YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_HOUR, TIMEZONE_MINUTE, TIMEZONE_REGION, TIMEZONE_MINUTE 매개 변수가 설정되면 숫자 값을 반환합니다.
EXTRACT (
{ YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }
| { TIMEZONE_HOUR | TIMEZONE_MINUTE }
| { TIMEZONE_REGION | TIMEZONE_ABBR }
FROM { date_value | interval_value } )
Example Data
EX 1) DATE에서 년, 월, 일 추출
SELECT TO_DATE( '2021-MAY-20 15:30:20 ', 'YYYY-MM-DD HH24:MI:SS' ) AS DT
, EXTRACT( YEAR FROM TO_DATE( '2021-MAY-20 15:30:20 ', 'YYYY-MM-DD HH24:MI:SS' ) ) AS YEAR
, EXTRACT( MONTH FROM TO_DATE( '2021-MAY-20 15:30:20 ', 'YYYY-MM-DD HH24:MI:SS' ) ) AS MONTH
, EXTRACT( DAY FROM TO_DATE( '2021-MAY-20 15:30:20 ', 'YYYY-MM-DD HH24:MI:SS' ) ) AS DAY
FROM DUAL;
EX 2) INTERVAL YEAR TO MONTH에서 년, 월 추출
SELECT EXTRACT( YEAR FROM INTERVAL '5-2' YEAR TO MONTH ) AS INTERVAL_YEAR
, EXTRACT( MONTH FROM INTERVAL '5-2' YEAR TO MONTH ) AS MONTH
FROM DUAL;
EX 3) INTERVAL DAY TO SECOND에서 일, 시, 분, 초 추출
SELECT EXTRACT( DAY FROM INTERVAL '20 23:05:20.11' DAY TO SECOND ) AS INTERVAL_DAY
, EXTRACT( HOUR FROM INTERVAL '20 23:05:20.11' DAY TO SECOND ) AS INTERVAL_HOUR
, EXTRACT( MINUTE FROM INTERVAL '20 23:05:20.11' DAY TO SECOND ) AS INTERVAL_MINUTE
, EXTRACT( SECOND FROM INTERVAL '20 23:05:20.11' DAY TO SECOND ) AS INTERVAL_SECOND
FROM DUAL;
EX 4) TIMESTAMP에서 년, 월, 일, 시, 분, 초 추출
SELECT EXTRACT( YEAR FROM TIMESTAMP '2021-05-20 23:07:59.10' ) AS TIME_YEAR
, EXTRACT( MONTH FROM TIMESTAMP '2021-05-20 23:07:59.10' ) AS TIME_MONTH
, EXTRACT( DAY FROM TIMESTAMP '2021-05-20 23:07:59.10' ) AS TIME_DAY
, EXTRACT( HOUR FROM TIMESTAMP '2021-05-20 23:07:59.10' ) AS TIME_HOUR
, EXTRACT( MINUTE FROM TIMESTAMP '2021-05-20 23:07:59.10' ) AS TIME_MINUTE
, EXTRACT( SECOND FROM TIMESTAMP '2021-05-20 23:07:59.10' ) AS TIME_SECOND
FROM DUAL;
반응형
'DataBase > Oracle' 카테고리의 다른 글
[ORACLE]순위 표현하는 RANK함수 (0) | 2021.05.22 |
---|---|
[ORACLE]DUMP 함수 (0) | 2021.05.21 |
[ORACLE]특정일 다음의 날짜 NEXT_DAY 함수 (0) | 2021.05.18 |
[ORACLE]해당 월의 마지막 날을 구하는 LAST_DAY 함수 (0) | 2021.05.18 |
[ORACLE]날짜 사이의 개월 수를 구하는 MONTHS_BETWEEN 함수 (0) | 2021.05.18 |
댓글