[SQL] MySQL에서 DATE_FORMAT()으로 날짜 형식 바꾸기

Unit·2026년 1월 4일

SQL

목록 보기
55/59

날짜 데이터를 다루다 보면 값 자체가 아니라 ‘표현 방식’을 바꿔야 하는 경우가 있습니다.
예를 들어 2026-01-04 00:00:00 같은 값을 2026-01-04 형태로 출력하고 싶을 때입니다.
MySQL에서는 이런 경우 DATE_FORMAT() 함수를 사용할 수 있습니다.


📆 DATE_FORMAT()이란?

DATE_FORMAT()은 날짜 또는 시간 값을 지정한 형식의 문자열로 변환하는 함수입니다.

DATE_FORMAT(date, format)
  • date : DATE, DATETIME, TIMESTAMP 타입 값
  • format : 출력 형식을 지정하는 문자열
    중요한 점은, DATE_FORMAT()의 결과는 DATE 타입이 아니라 문자열이라는 것입니다.

즉, 이 함수는 날짜를 계산하거나 비교하기 위한 용도가 아니라 출력 형식을 만들기 위한 함수에 가깝습니다.


🧩 format 지정자

자주 사용되는 지정자는 다음과 같습니다.

  • %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()은 날짜·시간 값을 원하는 형식의 문자열로 출력할 때 사용하는 함수입니다.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글