MySQL 날짜 변환 DATE_FORMAT 함수 사용 방법

DATE_FORMAT 함수를 사용하면 날짜를 지정한 포맷으로 변경할 수 있습니다.

날짜 포맷을 변경하는 이유는 SELECT로 데이터를 검색하는 경우 조건 대상이 date 타입의 컬럼이라면

날짜 포맷을 일치시켜주는 것이 정확한 검색 결과를 얻을 수 있습니다.

또는 데이터를 등록하거나 변경하는 경우에도 값을 지정한 컬럼이 date 타입이라면 날짜 형태로 변경해

값을 등록하는 것이 정확한 날짜 값으로 들어갑니다.

 

DATE_FORMAT 사용 방법

날짜 포맷을 변경해주는 DATE_FORMAT 함수 사용방법을 알아보겠습니다.

DATE_FORMAT(date, format)

 

첫 번째 인수인 date에는 포맷을 변경하고 싶은 값을 지정합니다.

두 번째 인수인 format에는 변경하고 싶은 날짜 타입을 입력합니다.

 

샘플을 보면서 확인해보겠습니다.

 

YYYY/mm/dd 포맷

SELECT DATE_FORMAT('20200405','%Y/%m/%d')
> 2020/04/05

 

YYYY-mm-dd 포맷

SELECT DATE_FORMAT('20200405','%Y-%m-%d')
> 2020-04-05

 

날짜 타입으로 많이 사용하는 YYYY/mm/dd 형태와 YYYY-mm-dd 형태의 포맷으로 변경하는 방법을 봤습니다.

DATE_FORMAT 함수를 사용하면 날짜 포맷뿐만이 아닌 요일이나 월을 영어 표기로 변환을 할 수 있습니다.

SELECT DATE_FORMAT('2020-04-05', '%W %M %Y');
> Sunday April 2020

 

2020년 4월 5일에서 요일과 월이 영어로 변환되어 표시되었습니다.

두 번째 인수인 포맷 형태에는 지정할 수 있는 값들이 정해져 있습니다.

지정값구분표시형식
%Y4자리 연도
%y2자리 연도
%m2자리 (00-12)
%c1자리, 10보다 작을경우 (1-12)
%M이름(January, February…)
%b줄인 이름(Jan, Feb…)
%d2자리 (00-31)
%e1자리, 10보다 작을경우 (0-31)
%D1st, 2nd…
%H24시간 형식 (00-23)
%h12시간 형식 (01-12)
%I12시간 형식 (01-13)
%k24시간 형식, 10보다 작을경우 한자리 (0-23)
%l12시간 형식, 10보다 작을경우 한자리 (1-12)
%i2자리 (00-59)
%S2자리 (00-59)
%s2자리 (00-59)
%f마이크로초100만분의 1초
%p오전/오후AM/PM
%T시분초24시간 형식 (hh:mm:ss)
%r시분초 오전/오후12시간 형식 (hh:mm:ss AM/PM)
%j그해의 몇번째 일인지 표시 (001-366)
%w그주의 몇번째 일인지 표시 (0=일요일, 6=토요일)
%W이름(Monday,Tuesday…)
%a줄인 이름(Mon,Tue…) 
%U그해의 몇번째 주인지 표시 (00-53) 일요일이 주의 첫번째일
%u그해의 몇번째 주인지 표시 (00-54) 월요일이 주의 첫번째일
%X그주가 시작된 해을 표시, %V와 같이 사용
%x그주가 시작된 해을 표시, %v와 같이 사용
%V그주가 시작된 해의 몇번째 주인지 표시 (01-53)
일요일이 주의 첫번째일 %X 와 함께사용
%v그주가 시작된 해의 몇번째 주인지 표시 (01-53)
월요일이 주의 첫번째일 %x 와 함께사용

 

 

댓글