MySQL EXTRACT() 함수는 다음 복합 단위를 사용할 수 있습니다 -
- SECOND_MICROSECOND
- MINUTE_MICROSECOND
- HOUR_MICROSECOND
- DAY_MICROSECOND
- MINUTE_SECOND
- HOUR_SECOND
- HOUR_MINUTE
- DAY_SECOND
- DAY_MINUTE
- DAY_HOUR
- YEAR_MONTH
EXTRACT() 함수에서 사용되는 이러한 복합 단위의 일부 예는 다음과 같습니다. -
mysql> Select EXTRACT(YEAR_MONTH from '2017-10-20'); +---------------------------------------+ | EXTRACT(YEAR_MONTH from '2017-10-20') | +---------------------------------------+ | 201710 | +---------------------------------------+ 1 row in set (0.00 sec)
위 쿼리는 날짜의 연도와 월 값을 반환합니다.
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_MINUTE를 사용하면 MySQL은 DAY, HOUR 및 MINUTE를 반환합니다. 일반적으로 예상되는 값이 시작 단위와 끝 단위 사이에 채워진다는 의미입니다.
예를 들어, 아래 쿼리는 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)