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' |
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) |
%v |
Week, 두 자리 숫자, 월요일이 첫날인 주 단위(01, …, 53) |
%W |
Weekday, 영문 스트링 (Sunday, …, Saturday) |
%w |
Day of the week, 숫자 인덱스 (0=Sunday, …, 6=Saturday) |
%X |
Year, 네 자리 숫자, 일요일이 첫날인 주 단위로 계산(0000, …, 9999) |
%x |
Year, 네 자리 숫자, 월요일이 첫날인 주 단위로 계산(0000, …, 9999) |
%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'