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 함수를 사용하면 좋은 경우