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;
'Structured Query Language > Oracle SQL' 카테고리의 다른 글
SQL OVER 절 (0) | 2023.12.19 |
---|---|
[오라클/ORACLE] 형변환 CAST 연산자 , TO_XXXX 함수 ( TO_NUMBER, TO_DATE, TO_CHAR ) (1) | 2023.09.25 |
Oracle_SQL CONNECT BY LEVEL (0) | 2023.09.25 |
Oracle SQL_DUAL (0) | 2023.09.25 |
[ Oracle SQL ] 계층형쿼리 (Hierarchy Query) (0) | 2023.07.28 |