본문 바로가기
Post

[MySQL] 날짜 형식/포맷 변환 함수 (DATE_FORMAT 함수)

by Dev.tk 2025. 4. 1.

MySQL DATE_FORMAT()

MySQL DATE_FORMAT 함수: 날짜 형식을 자유롭게 다루는 방법

안녕하세요, 데이터베이스 초보자부터 전문가까지 모두를 위한 MySQL 팁을 공유하는 블로그에 오신 것을 환영합니다! 오늘은 MySQL에서 날짜 데이터를 원하는 형식으로 출력할 때 유용한 DATE_FORMAT 함수에 대해 자세히 알아보겠습니다. 이 함수를 사용하면 날짜를 보기 좋게 포맷팅하거나, 특정 형식으로 데이터를 가공할 수 있어 실무에서 정말 유용합니다. 그럼 바로 사용법과 예시를 통해 배워볼까요?

 

 

DATE_FORMAT 함수란?

DATE_FORMAT은 MySQL에서 날짜와 시간 데이터를 사용자가 원하는 형식으로 변환해주는 함수입니다. 예를 들어, 데이터베이스에 저장된 2025-03-31 14:30:00 같은 날짜를 "2025년 3월 31일 오후 2시 30분"처럼 읽기 쉽게 바꾸고 싶을 때 사용합니다.

 

 

기본 문법

DATE_FORMAT(date, format)
  • date: 포맷팅하고 싶은 날짜 데이터 (예: 2025-03-31, NOW() 등)
  • format: 날짜를 어떤 형식으로 출력할지 지정하는 포맷 문자열

이제 이 format에 들어갈 수 있는 주요 형식 지정자를 알아보겠습니다.


주요 형식 지정자 (Format Specifiers)

DATE_FORMAT에서 사용할 수 있는 형식 지정자는 매우 다양합니다. 아래는 자주 쓰이는 몇 가지 예입니다:

지정자설명출력 예시
%Y 4자리 연도 2025
%y 2자리 연도 25
%m 2자리 월 (01-12) 03
%M 월 이름 (January 등) March
%d 2자리 일 (01-31) 31
%H 24시간 형식 (00-23) 14
%h 12시간 형식 (01-12) 02
%i 분 (00-59) 30
%s 초 (00-59) 00
%p AM/PM 표시 PM
%W 요일 이름 Monday
%a 요일 약어 Mon

이 외에도 더 많은 지정자가 있지만, 위의 목록이 실무에서 가장 자주 사용됩니다. 지정자를 조합하면 원하는 대로 날짜 형식을 만들 수 있습니다!


사용 예시

이제 실제로 DATE_FORMAT을 써보겠습니다. MySQL 쿼리와 그 결과를 함께 보여드릴게요.

 

예시 1: 기본적인 날짜 포맷팅

SELECT DATE_FORMAT('2025-03-31 14:30:00', '%Y-%m-%d') AS formatted_date;

결과: 2025-03-31

설명: %Y-%m-%d는 "연도-월-일" 순으로 출력하라는 뜻이에요. 간단하지만 자주 쓰이는 형식입니다.

 

 

예시 2: 한국식 날짜 표현

SELECT DATE_FORMAT('2025-03-31 14:30:00', '%Y년 %m월 %d일') AS korean_date;

결과: 2025년 03월 31일

설명: 한국어 스타일로 "년", "월", "일"을 추가했습니다. 텍스트와 지정자를 섞어서 자연스럽게 표현할 수 있어요.

 

 

예시 3: 시간까지 포함한 포맷

SELECT DATE_FORMAT('2025-03-31 14:30:00', '%Y-%m-%d %H:%i:%s') AS datetime;

결과: 2025-03-31 14:30:00

설명: 시간(%H), 분(%i), 초(%s)를 추가해 완전한 날짜-시간 형식을 만들었습니다.

 

 

예시 4: 12시간제와 AM/PM 사용

SELECT DATE_FORMAT('2025-03-31 14:30:00', '%h:%i %p') AS time_12h;

결과: 02:30 PM

설명: %h로 12시간제를 사용하고, %p로 AM/PM을 표시했어요. 오후 2시 30분이 맞죠?

 

 

예시 5: 요일과 함께 출력

SELECT DATE_FORMAT('2025-03-31 14:30:00', '%W, %M %d, %Y') AS full_date;

결과: Monday, March 31, 2025

설명: 요일(%W), 월 이름(%M), 일(%d), 연도(%Y)를 조합해 영어권에서 자주 쓰이는 형식을 만들어봤습니다.

 

 

예시 6: 현재 날짜에 적용

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS current_time;

결과: (현재 시각에 따라 다름, 예: 2025-03-31 09:15:23)

설명: NOW() 함수와 함께 사용하면 현재 날짜와 시간을 원하는 형식으로 출력할 수 있어요.

 

 


  1. NULL 값 주의: date 값이 NULL이면 결과도 NULL로 나옵니다. 쿼리 작성 시 데이터가 제대로 들어있는지 확인하세요.
  2. 로케일 고려: %M이나 %W 같은 지정자는 서버의 언어 설정에 따라 영어 외 다른 언어로 나올 수 있습니다.
  3. 성능: 간단한 포맷팅은 부하가 적지만, 대량 데이터 작업 시 불필요한 포맷팅은 피하는 게 좋습니다.

 


마무리

MySQL의 DATE_FORMAT 함수는 날짜 데이터를 다룰 때 정말 강력한 도구입니다. 위 예시를 참고해 여러분이 원하는 형식으로 자유롭게 커스터마이징해보세요! 질문이 있거나 더 알고 싶은 내용이 있다면 댓글로 남겨주시면 최대한 자세히 답변드릴게요. 다음 포스팅에서도 유용한 MySQL 팁으로 찾아뵙겠습니다. 즐거운 데이터베이스 생활 되세요!

 

 

 

 

 

 

 

[리눅스 명령어] grep 사용법 완벽 정리 Linux (파일에서 특정 단어 검색하기)
https://tkpark86.tistory.com/20

 

[리눅스 명령어] grep 사용법 완벽 정리 Linux (파일에서 특정 단어 검색하기)

리눅스 명령어 - grep 완벽 정리안녕하세요, 구글에서 가장 많이 검색하는 리눅스 명령어 중 하나로 꼽히는 grep에 대해 자세히 알아보고, 실용적인 예시와 결과를 함께 살펴보겠습니다. grep이란?g

tkpark86.tistory.com

 

 

 

 

[리눅스 명령어] find 사용법 완벽 정리 Linux (파일찾기, 검색, 하위 디렉토리)
https://tkpark86.tistory.com/21

 

[리눅스 명령어] find 사용법 완벽 정리 Linux (파일찾기, 검색, 하위 디렉토리)

리눅스 find 명령어 완벽 정리: 초보 개발자도 쉽게 따라 하기안녕하세요, 리눅스에서 파일이나 폴더를 찾을 때 여러분은 보통 어떻게 하시나요? 저는 find 명령어가 정말 유용해서 자주 애용하는

tkpark86.tistory.com

 

 

 

 

 

 

 

#MySQL #날짜 #형식 #사용법 #DATE_FORMAT #함수 #변환 #포맷 #format #datetime