[Oracle] 오라클 EXTRACT 함수 사용법 (날짜 정보 추출)
- 데이터베이스/오라클
- 2024. 8. 25.
오라클 SQL에서 EXTRACT 함수를 사용하여 날짜(년, 월, 일) 또는 시간( 시, 분, 초 )을 분리하여 추출할 수 있다. 날짜를 분리하여 추출할 때는 주로 TO_CHAR 함수를 많이 사용하지만, EXTRACT 함수와 TO_CHAR 함수의 차이는 EXTRACT 함수는 숫자(NUMBER)를 반환하고, TO_CHAR 함수는 문자열을 반환한다.
목차 |
EXTRACT 함수를 사용하여 날짜 추출(년, 월, 일)
SELECT SYSDATE
, EXTRACT(YEAR FROM SYSDATE) AS year_part
, EXTRACT(MONTH FROM SYSDATE) AS month_part
, EXTRACT(DAY FROM SYSDATE) AS day_part
FROM dual
현재 날짜(SYSDATE)에서 년, 월, 일 부분을 추출하여 반환하는 예제이다.
날짜 값 또는 칼럼에 YEAR, MONTH, DAY 구성 요소를 사용하여 날짜를 분리하면 된다.
EXTRACT 함수를 사용하여 시간 추출(시, 분, 초)
SELECT SYSDATE
, EXTRACT(HOUR FROM CAST(SYSDATE AS TIMESTAMP)) AS hour_part
, EXTRACT(MINUTE FROM CAST(SYSDATE AS TIMESTAMP)) AS minute_part
, EXTRACT(SECOND FROM CAST(SYSDATE AS TIMESTAMP)) AS second_part
FROM dual
EXTRACT 함수를 사용하여 시간을 추출하기 위해서는 데이터 형식이 TIMESTAMP를 사용해야 한다.
데이터 형식이 DATE인 경우 CAST 함수를 사용하여 TIMESTAMP로 변환 후 시, 분, 초를 추출하면 된다.
EXTRACT 함수를 사용하여 실제 테이블에서 추출
SELECT ename
, hiredate
, EXTRACT(YEAR FROM hiredate) AS year_part
, EXTRACT(MONTH FROM hiredate) AS month_part
, EXTRACT(DAY FROM hiredate) AS day_part
FROM emp
WHERE job = 'MANAGER'
직원(emp) 테이블의 입사일(hiredate)에서 년, 월, 일을 추출하는 예제이다.
TO_CHAR 함수를 사용하여 날짜 추출 방법
SELECT TO_CHAR(SYSDATE, 'YYYY') AS year_part
, TO_CHAR(SYSDATE, 'MM') AS month_part
, TO_CHAR(SYSDATE, 'DD') AS day_part
, TO_CHAR(SYSDATE, 'HH24') AS hour_part
, TO_CHAR(SYSDATE, 'MI') AS minute_part
, TO_CHAR(SYSDATE, 'SS') AS second_part
FROM dual
특별한 케이스가 아니면 실무에서 TO_CHAR 함수를 사용하여 날짜 또는 시간을 추출한다.
TO_CHAR 함수를 사용하면 자릿수를 고정하여 날짜를 추출할 수 있다. (월: 8 → 08)