DATE_FORMAT 함수

설명

DATE_FORMAT 함수는 DATE 포맷('YYYY-MM-DD' 또는 'MM/DD/YYYY')를 포함하는 스트링 또는 날짜/시간 타입(DATE, TIMESTAMP, DATETIME) 값을 지정된 날짜/시간 포맷으로 변환하여 스트링으로 출력하며, 리턴 값은 VARCHAR 타입이다.

구문

DATE_FORMAT(date, format)

디폴트 날짜/시간 출력 포맷

날짜/시간 타입

디폴트 출력 포맷

DATE

'MM/DD/YYYY'

TIME

'HH:MI:SS AM'

TIMESTAMP

'HH:MI:SS AM MM/DD/YYYY'

DATETIME

'HH:MI:SS.FF AM MM/DD/YYYY'

날짜/시간 포맷 2

format 값

의미

%a

Weekday, 영문 약어 (Sun, …, Sat)

%b

Month, 영문 약어 (Jan, …, Dec)

%c

Month(1, …, 12)

%D

Day of the month, 서수 영문 스트링(1st, 2nd, 3rd, …)

%d

Day of the month, 두 자리 숫자(01, …, 31)

%e

Day of the month (1, …, 31)

%f

Milliseconds, 세 자리 숫자 (000, …, 999)

%H

Hour, 24시간 기준, 두 자리 수 이상 (00, …, 23, …, 100, …)

%h

Hour, 12시간 기준 두 자리 숫자 (01, …, 12)

%I

Hour, 12시간 기준 두 자리 숫자 (01, …, 12)

%i

Minutes , 두 자리 숫자(00, …, 59)

%j

Day of year, 세 자리 숫자 (001, …, 366)

%k

Hour, 24시간 기준, 한 자리 수 이상 (0, …, 23, …, 100, …)

%l

Hour , 12시간 기준 (1, …, 12)

%M

Month, 영문 스트링 (January, …, December)

%m

Month, 두 자리 숫자 (01, …, 12)

%p

AM or PM

%r

Time, 12 시간 기준, 시:분:초 (hh:mm:ss AM or hh:mm:ss PM)

%S

Seconds, 두 자리 숫자 (00, …, 59)

%s

Seconds , 두 자리 숫자(00, …, 59)

%T

Time, 24시간 기준, 시:분:초 (hh:mm:ss)

%U

Week, 두 자리 숫자, 일요일이 첫날인 주 단위(00, …, 53)

%u

Week, 두 자리 숫자, 월요일이 첫날인 주 단위(00, …, 53)

%V

Week, 두 자리 숫자, 일요일이 첫날인 주 단위(01, …, 53)
%X와 결합되어 사용 가능

%v

Week, 두 자리 숫자, 월요일이 첫날인 주 단위(01, …, 53)
%x 와 결합되어 사용 가능

%W

Weekday, 영문 스트링 (Sunday, …, Saturday)

%w

Day of the week, 숫자 인덱스 (0=Sunday, …, 6=Saturday)

%X

Year, 네 자리 숫자, 일요일이 첫날인 주 단위로 계산(0000, …, 9999)
%V와 결합되어 사용 가능

%x

Year, 네 자리 숫자, 월요일이 첫날인 주 단위로 계산(0000, …, 9999)
%v와 결합되어 사용 가능

%Y

Year, 네 자리 숫자(0001, …, 9999)

%y

Year, 두 자리 숫자(00, 01, …,  99)

%%

특수문자 "%"를 그대로 출력하는 경우

%x

포맷 지정자로 쓰이지 않는 영문자 중 임의의 문자 x를 그대로 출력하는 경우

예제

SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');

======================

  'Sunday October 2009'

 

 

SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');

======================

  '22:23:00'

 

SELECT DATE_FORMAT('1900-10-04 22:23:00', '%D %y %a %d %m %b %j');

======================

  '4th 00 Thu 04 10 Oct 277'

 

 

SELECT DATE_FORMAT('1999-01-01', '%X %V');

======================

  '1998 52'