EXTRACT 함수
DATE에서 지정한 UNIT을 기준으로 자료를 추출EXTRACT(UNIT FROM DATE)
구문 예시
SELECT EXTRACT(YEAR FROM '2019-07-02'); -> 2019 SELECT EXTRACT(YEAR_MONTH FROM '2019-07-02 01:02:03'); -> 201907 SELECT EXTRACT(DAY_MINUTE FROM '2019-07-02 01:02:03'); -> 20102 SELECT EXTRACT(MICROSECOND FROM '2003-01-02 10:30:00.000123'); -> 123
DATE_FORMAT 함수와의 차이점
비슷한 기능을 하는 함수로 DATE_FORMAT 함수를 이용할 수 있는데, 두 함수는 서로 유사하면서도 다른 점이 존재한다.
👉 DATE_FORMAT 관련 기존 포스트 바로가기
DATE_FORMAT 함수는 DATE를 지정한 형식에 따라 출력하는 기능이며, EXTRACT 함수는 명칭에서 알 수 있듯이 DATE에서 지정한 단위를 추출하는 기능이다.
DATE_FORMAT 함수는 specifier를 이용하여 다양한 형태로 포매팅(서식지정)을 할 수 있으나 EXTRACT 함수는 year, month 등 주어진 인자만 사용하여 추출할 수 있다.
👉 DATE_FORMAT 관련 specifier 리스트 바로가기
또한 DATE_FORMAT 함수는 서식을 지정하므로 출력값이 문자(string)인 반면, EXTRACT 함수는 출력값이 숫자(number)이다. 물론, DATE_FORMAT 함수로 년/월/일을 추출하더라도 연산은 가능하다.
| EXTRACT 함수 인자 |
|---|
| MICROSECOND |
| SECOND |
| MINUTE |
| HOUR |
| DAY |
| WEEK |
| MONTH |
| QUARTER |
| YEAR |
| SECOND_MICROSECOND |
| MINUTE_MICROSECOND |
| MINUTE_SECOND |
| HOUR_MICROSECOND |
| HOUR_SECOND |
| HOUR_MINUTE |
| DAY_MICROSECOND |
| DAY_SECOND |
| DAY_MINUTE |
| DAY_HOUR |
| YEAR_MONTH |
EXTRACT 함수를 사용하면 좋은 경우
월 추출 시 '01', '02'의 형태가 아닌 1, 2의 숫자형태로 추출하고 싶을 때 (MONTH)
별도의 포매팅 없이 연도와 월을 동시에 표현하고 싶을 때 (YEAR_MONTH)
DATE_FORMAT 함수를 사용하면 좋은 경우