본문 바로가기
SQL

[MySQL] DATE_FORMAT 함수 : 날짜 형식 방법 정리

by Echung 2024. 1. 28.

이번에는 SQL을 풀다가 DATE 또는 DATETIME 형식의 값을 지정된 형식의 문자열로 변환하는 데 사용되는 DATE_FORMAT함수에 대해서 알아보려고 합니다. 바로 사용법을 보도록 하겠습니다!

DATE_FORMAT 함수 사용법


테이블 구조

사진 1. 테이블 구조

테이블의 구조는 이렇습니다. book_id와 published_date가 있습니다. published_date의 Type 은 DATE입니다.

우리는 DATE_FORMAT을 사용해서 published_date를 다양하게 표현할 수 있습니다.

1. DATE_FORMAT(published_date, '%Y-%m-%d')를 통한 변환

SELECT
book_id,
DATE_FORMAT(published_date, '%Y-%m-%d') AS published_date
FROM BOOK

사진 2. '%Y-%m-%d' 을 사용한 결과

2. DATE_FORMAT(published_date, '%Y 년 %m월 %d일')를 통한 변환

SELECT
book_id,
DATE_FORMAT(published_date, '%Y년 %m월 %d일') AS published_date
FROM BOOK

사진 3. '%Y년 %m월 %d일' 을 사용한 결과

3. DATE_FORMAT(published_date, '%Y-%m-%d %r')를 통한 변환

SELECT
book_id,
DATE_FORMAT(published_date, '%Y-%m-%d %r') AS published_date
FROM BOOK

사진 4.  '%Y-%m-%d %r' 을 사용한 결과

DATE_FORMAT 표


이렇게 저희는 DATE_FORMAT을 사용해서 다양하게 값들을 다양하게 바꿀 수 있습니다. 원하는데로 데이터를 커스텀하기 위해서는 우리가 알아두면 유용한 표가 있습니다. 아래의 사이트를 가면 확인 할 수 있습니다.

https://www.w3schools.com/sql/func_mysql_date_format.asp

영문으로 되어있다보니 불편할 수 있다고 생각이들어 제가 간단히 표로 정리해보았습니다.

FORMAT 설명 FORMAT 설명
%a 짧은 요일(Sun, Mon ...) %i 분(00, 01, ... 59)
%b 짧은 월(Jen, Feb ...) %l(소문자 l) 12시간 형태 (1, 2, ... 12)
%c 숫자 월(1, 2, 3 ...) %y 2자리 연도 (99, 00, 01)
%d 일자 (00, 01, 02 ...) %Y 4자리 연도 (2023, 2024)
%D 월 (1st, 2nd, 3rd ...) %S, %s
%e Day 일(0, 1, 2 ...) %w Day of Week(0, 1, ...6)
0 = 일요일
%H 24시간 형태 (00, 01, ... 24)  %r  hh:mm:ss AM, PM
%h 12시간 형태(01, 02, ... 12) %p  AM, PM
%I(대문자 i) 12시간 형태 (01, 02, ... 12)  %T hh:mm:ss

이렇게 있습니다. 더 많은 자료는 위의 링크를 참고하시면 좋을 것 같습니다.

REFERENCE


https://www.w3schools.com/sql/func_mysql_date_format.asp

 

반응형