Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL EXTRACT() 함수에서 사용할 수 있는 복합 단위(Compound Units) 총정리

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() 함수의 복합 단위는 두 개 이상의 시간 요소를 한 번에 추출할 수 있게 해주는 강력한 기능입니다. 다만 시작 단위와 끝 단위 사이의 모든 중간 단위가 자동으로 포함된다는 점을 기억하면, 원하는 형식의 결과를 정확하게 얻을 수 있습니다.