1. 소개
MySQL 데이터베이스에서 날짜와 시간 데이터를 다루는 것은 흔한 작업입니다. 날짜는 일반적으로 표준 형식으로 저장되지만, 사용자에게 보다 읽기 쉽거나 맞춤형 형식으로 보여줄 필요가 자주 있습니다. 바로 이때 DATE_FORMAT 함수가 유용합니다. 이 글에서는 DATE_FORMAT 함수의 사용 방법을 설명하고, 다양한 포맷 옵션을 소개하며, 효과적으로 활용할 수 있는 실용적인 예제를 제공합니다.
2. DATE_FORMAT 함수 개요
2.1 DATE_FORMAT 함수란?
MySQL의 DATE_FORMAT 함수는 날짜 데이터를 지정한 형식으로 변환하는 데 사용됩니다. 기본인 YYYY‑MM‑DD 또는 타임스탬프 형식 대신, 원하는 어떤 스타일로든 날짜를 표시할 수 있습니다. 예를 들어 사용자에게 “September 16, 2024”와 같이 날짜를 보여주고 싶다면 이 함수를 사용하면 됩니다 2.2 기본 구문
DATE_FORMAT 함수의 기본 구문은 다음과 같습니다:
DATE_FORMAT(date, format)
date: 포맷하려는 날짜 값.format: 출력 날짜 형식을 지정하는 문자열.
간단한 예제를 살펴보겠습니다:
SELECT DATE_FORMAT('2024-09-16', '%Y年%m月%d日') AS formatted_date;
이 쿼리는 날짜 ‘2024-09-16’을 “2024年09月16日” 형식으로 변환합니다.

3. 날짜 포맷 매개변수
3.1 포맷 지정자 목록
DATE_FORMAT 함수에서 사용할 수 있는 포맷 지정자는 매우 다양합니다. 여기 가장 많이 쓰이는 것들을 소개합니다:
%Y: 4자리 연도 (예: 2024)%y: 2자리 연도 (예: 24)%m: 2자리 월 (01~12)%c: 월 (1~12)%d: 2자리 일 (01~31)%e: 일 (1~31)%H: 24시간 형식의 시 (00~23)%h또는%I: 12시간 형식의 시 (01~12)%i: 분 (00~59)%s: 초 (00~59)%p: AM 또는 PM
3.2 실용 예제
이 지정자들이 실제 출력에 어떻게 영향을 미치는지 살펴보겠습니다.
SELECT
DATE_FORMAT('2024-09-16 14:35:59', '%Y-%m-%d %H:%i:%s') AS full_format,
DATE_FORMAT('2024-09-16 14:35:59', '%Y年%m月%d日') AS japanese_format,
DATE_FORMAT('2024-09-16 14:35:59', '%d/%m/%Y') AS european_format,
DATE_FORMAT('2024-09-16 14:35:59', '%h:%i %p') AS twelve_hour_format;
이 쿼리는 다음과 같은 결과를 반환합니다:
full_format: 2024-09-16 14:35:59japanese_format: 2024年09月16日european_format: 16/09/2024twelve_hour_format: 02:35 PM
4. 실전 사용 예제
4.1 시나리오 1: 보고서 생성
예를 들어 회사의 월간 보고서를 만들 때 날짜를 “YYYY年MM月” 형식으로 표시하고 싶을 수 있습니다. 아래 쿼리는 보고서 날짜를 해당 형식으로 포맷하는 방법을 보여줍니다:
SELECT
DATE_FORMAT(sale_date, '%Y年%m月') AS report_month,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY report_month;
이 쿼리는 월별 매출 합계를 “2024年09月”과 같은 형식으로 출력합니다.
4.2 시나리오 2: 사용자 인터페이스
DATE_FORMAT 함수는 웹 애플리케이션에서 날짜를 사용자 친화적으로 표시할 때도 유용합니다. 예를 들어 사용자 프로필 페이지에 마지막 로그인 날짜를 표시하려면 다음과 같이 할 수 있습니다:
SELECT
user_name,
DATE_FORMAT(last_login, '%Y/%m/%d %H:%i') AS last_login_formatted
FROM users;
이 쿼리는 사용자의 마지막 로그인 날짜와 시간을 “2024/09/16 14:35” 형태로 보여줍니다.
4.3 시나리오 3: 쿼리 최적화
DATE_FORMAT은 데이터베이스 쿼리 최적화에도 도움을 줍니다. 특정 월에 해당하는 레코드를 추출하려면 WHERE 절에 포맷된 날짜를 사용할 수 있습니다:
SELECT
*
FROM transactions
WHERE DATE_FORMAT(transaction_date, '%Y-%m') = '2024-09';
이 쿼리는 2024년 9월에 발생한 모든 거래를 추출합니다.
5. DATE_FORMAT 사용 시 유의사항 및 모범 사례
5.1 성능 고려사항
DATE_FORMAT을 자주 사용하면 성능에 영향을 미칠 수 있으며, 특히 대규모 데이터셋에서 그렇습니다. 반복적으로 사용하면 처리 시간이 증가할 수 있습니다. 필요에 따라 형식화된 날짜를 미리 저장하거나 애플리케이션 수준에서 날짜 형식을 처리하는 것을 고려하세요.
5.2 현지화
DATE_FORMAT을 사용하여 다국어 시스템을 구축하는 경우 현지화에 주의하세요. 날짜 형식은 국가나 지역에 따라 다르기 때문에 사용자의 로케일에 따라 형식을 동적으로 조정해야 합니다.
5.3 일관된 형식
시스템 전반에 걸쳐 일관된 날짜 형식을 사용하는 것이 더 나은 사용자 경험의 핵심입니다. 예를 들어 입력 양식, 표시 영역, 보고서에서 동일한 형식을 사용하여 사용자를 혼란스럽게 하지 마세요.
6. 결론
DATE_FORMAT 함수는 MySQL에서 유연한 날짜 형식을 위한 강력한 도구입니다. 기본 사항, 실용적인 사용법, 중요한 팁과 모범 사례를 다루었습니다. 이 함수를 마스터하면 읽기 쉽고 사용자 친화적인 방식으로 날짜를 표시할 수 있습니다. 다음 단계로 더 고급 날짜 및 시간 조작을 탐구하는 것을 추천합니다.
7. 참고 자료 및 추가 읽기
- MySQL 공식 문서: DATE_FORMAT
- 다른 관련 기사와 튜토리얼을 위해 공식 문서와 전문 블로그를 지속적으로 확인하세요. 새로운 정보가 정기적으로 업데이트됩니다.


