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일에서 요일과 월이 영어로 변환되어 표시되었습니다.
두 번째 인수인 포맷 형태에는 지정할 수 있는 값들이 정해져 있습니다.
지정값 | 구분 | 표시형식 |
---|---|---|
%Y | 연 | 4자리 연도 |
%y | 연 | 2자리 연도 |
%m | 월 | 2자리 (00-12) |
%c | 월 | 1자리, 10보다 작을경우 (1-12) |
%M | 월 | 이름(January, February…) |
%b | 월 | 줄인 이름(Jan, Feb…) |
%d | 일 | 2자리 (00-31) |
%e | 일 | 1자리, 10보다 작을경우 (0-31) |
%D | 일 | 1st, 2nd… |
%H | 시 | 24시간 형식 (00-23) |
%h | 시 | 12시간 형식 (01-12) |
%I | 시 | 12시간 형식 (01-13) |
%k | 시 | 24시간 형식, 10보다 작을경우 한자리 (0-23) |
%l | 시 | 12시간 형식, 10보다 작을경우 한자리 (1-12) |
%i | 분 | 2자리 (00-59) |
%S | 초 | 2자리 (00-59) |
%s | 초 | 2자리 (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 와 함께사용 |
댓글