날짜 데이터를 다루다 보면 값 자체가 아니라 ‘표현 방식’을 바꿔야 하는 경우가 있습니다.
예를 들어 2026-01-04 00:00:00 같은 값을 2026-01-04 형태로 출력하고 싶을 때입니다.
MySQL에서는 이런 경우 DATE_FORMAT() 함수를 사용할 수 있습니다.
DATE_FORMAT()은 날짜 또는 시간 값을 지정한 형식의 문자열로 변환하는 함수입니다.
DATE_FORMAT(date, format)
DATE_FORMAT()의 결과는 DATE 타입이 아니라 문자열이라는 것입니다.즉, 이 함수는 날짜를 계산하거나 비교하기 위한 용도가 아니라 출력 형식을 만들기 위한 함수에 가깝습니다.
자주 사용되는 지정자는 다음과 같습니다.
%Y : 4자리 연도 (ex> 2026)
%y : 2자리 연도 (ex> 26)
%m : 2자리 월 (01 ~ 12)
%M : 월 이름 (ex> January, February …)
%d : 2자리 일 (01 ~ 31)
%e : 앞자리 0이 없는 일 (1 ~ 31)
%H : 24시간 기준 시 (00 ~ 23)
%h : 12시간 기준 시 (01 ~ 12)
%i : 분 (00 ~ 59)
%s : 초 (00 ~ 59)
%W : 요일 이름 (ex> Monday, Tuesday …)
%a : 요일 약식 (ex> Mon, Tue …)
%p : AM / PM
필요한 지정자만 조합해 원하는 날짜·시간 형식을 만들 수 있습니다.
SELECT DATE_FORMAT('2026-01-04 00:00:00', '%Y-%m-%d');
결과 :
2026-01-04
✔ DATE_FORMAT()은 날짜·시간 값을 원하는 형식의 문자열로 출력할 때 사용하는 함수입니다.