MySQL EXTRACT() 함수의 복합 단위란?
MySQL의 EXTRACT() 함수는 날짜 및 시간 값에서 특정 부분을 추출하는 데 사용됩니다. 이 함수는 단일 단위뿐만 아니라 다음과 같은 복합 단위(compound units)도 지원합니다.
- SECOND_MICROSECOND
- MINUTE_MICROSECOND
- HOUR_MICROSECOND
- DAY_MICROSECOND
- MINUTE_SECOND
- HOUR_SECOND
- HOUR_MINUTE
- DAY_SECOND
- DAY_MINUTE
- DAY_HOUR
- YEAR_MONTH
복합 단위 사용 예제
EXTRACT() 함수에서 복합 단위를 활용하는 몇 가지 예제를 살펴보겠습니다.
1. YEAR_MONTH 단위 예제
mysql> Select EXTRACT(YEAR_MONTH from '2017-10-20'); +---------------------------------------+ | EXTRACT(YEAR_MONTH from '2017-10-20') | +---------------------------------------+ | 201710 | +---------------------------------------+ 1 row in set (0.00 sec)
위 쿼리는 날짜에서 연도와 월 값을 함께 반환합니다. 결과로 201710이 출력되는 것을 확인할 수 있습니다.
2. DAY_HOUR 단위 예제
mysql> Select EXTRACT(DAY_HOUR from '2017-10-20 05:46:45'); +----------------------------------------------+ | EXTRACT(DAY_HOUR from '2017-10-20 05:46:45') | +----------------------------------------------+ | 2005 | +----------------------------------------------+ 1 row in set (0.00 sec)
이번에는 날짜와 시간 정보에서 일(day)과 시간(hour) 값을 추출하여 2005라는 결과를 반환합니다.
복합 단위 사용 시 주의사항
복합 단위를 사용할 때 반드시 기억해야 할 중요한 특징이 있습니다. 복합 단위는 시작 단위부터 끝 단위까지의 모든 값을 포함하는 완전한 집합이라는 점입니다. 즉, 시작 단위와 끝 단위 사이에 있는 중간 단위들의 값도 자동으로 채워져 반환됩니다.
예를 들어, 아래 쿼리는 DAY_MICROSECOND 복합 단위를 사용합니다. 이 경우 MySQL은 일(DAY), 시(HOUR), 분(MINUTE), 초(SECOND), 마이크로초(MICROSECOND)까지 모두 반환합니다. 즉, DAY와 MICROSECOND 사이에 있는 HOUR, MINUTE, SECOND 값들이 자동으로 포함되는 것입니다.
mysql> Select EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356'); +---------------------------------------------------------------------------+ | EXTRACT(DAY_MICROSECOND from '2017-10-22 05:52:45.102356') | +---------------------------------------------------------------------------+ | 22055245102356 | +---------------------------------------------------------------------------+ 1 row in set (0.00 sec)
결과값 22055245102356을 보면 일(22), 시(05), 분(52), 초(45), 마이크로초(102356)가 순서대로 연결되어 있는 것을 확인할 수 있습니다.
정리
MySQL EXTRACT() 함수의 복합 단위는 두 개 이상의 시간 요소를 한 번에 추출할 수 있게 해주는 강력한 기능입니다. 다만 시작 단위와 끝 단위 사이의 모든 중간 단위가 자동으로 포함된다는 점을 기억하면, 원하는 형식의 결과를 정확하게 얻을 수 있습니다.