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

MySQL DATE_FORMAT() 함수로 날짜·시간 처리 간편하게 위임하기

애플리케이션 레벨에서 복잡하게 처리하던 날짜와 시간 포맷팅 작업은 DATE_FORMAT() 함수를 활용하면 MySQL에 손쉽게 위임할 수 있습니다. 함수의 인자로 전달되는 포맷 단위(형식 지정자)에 따라 MySQL이 알아서 원하는 형태의 결과만 반환해 주기 때문입니다.

날짜만 추출하기

DATE_FORMAT() 함수에 날짜 관련 포맷 단위를 인자로 넘기면, MySQL은 날짜 부분만 지정한 형식으로 가공하여 반환합니다.

mysql> Select DATE_FORMAT("2017-10-22 13:03:45", "%Y %M %D") AS 'OFFLOADED DATE';
+-------------------+
| OFFLOADED DATE    |
+-------------------+
| 2017 October 22nd |
+-------------------+
1 row in set (0.00 sec)

위 예제에서 %Y(연도), %M(월 이름), %D(서수가 붙은 일) 형식 지정자를 사용했더니, '2017 October 22nd'처럼 읽기 좋은 날짜 문자열만 출력된 것을 확인할 수 있습니다.

시간만 추출하기

반대로 시간 관련 포맷 단위를 인자로 전달하면, MySQL은 시간 정보만 따로 분리해서 반환합니다.

mysql> Select DATE_FORMAT("2017-10-22 13:03:45", "%h %i %s %p") AS 'OFFLOADED TIME';
+----------------+
| OFFLOADED TIME |
+----------------+
| 01 03 45 PM    |
+----------------+
1 row in set (0.00 sec)

여기서는 %h(12시간제 시), %i(분), %s(초), %p(AM/PM 표시)를 조합해 '01 03 45 PM'이라는 시간 문자열을 얻었습니다.

정리

이처럼 DATE_FORMAT() 함수는 하나의 DATETIME 값에서 날짜와 시간을 자유롭게 분리하거나 재조합할 수 있는 강력한 도구입니다. 다양한 형식 지정자(%Y, %m, %d, %H, %i, %s 등)를 조합하면 애플리케이션 코드 없이도 쿼리 단계에서 원하는 모든 날짜·시간 포맷을 구현할 수 있습니다.