[MySQL] date_format 설정 (날짜 포맷 변경)
- 빅데이터 및 DB/MySQL
- 2022. 4. 24.
MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시에 대해서 포스팅을 해보도록 한다.
포맷 설명
포맷설정 | 포맷 설명 |
%a | 영문 약칭 요일 (Sun to Sat) |
%b | 영문 약칭 월 (Jan to Dec) |
%c | 숫자로 표현하는 월 (0 to 12) |
%D | 숫자 값으로 표시된 일, 뒤에 접미사가 붙음 (1st, 2nd, 3rd, ...) |
%d | 숫자 값으로 표시된 일 (01 to 31) |
%e | 숫자 값으로 표시된 일 (0 to 31) |
%f | 마이크로초 (000000 to 999999) |
%H | 시간 (00 to 23) |
%h | 시간 (00 to 12) |
%I | 시간 (00 to 12) |
%i | 분 (00 to 59) |
%j | 년중 일 (001 to 366) |
%k | 시간 (0 to 23) |
%l | 시간 (1 to 12) |
%M | 영문 월 (January to December) |
%m | 숫자 값으로 표시된 월 (00 to 12) |
%p | AM or PM |
%r | AM이나 PM 포맷의 시간 형식 (hh:mm:ss AM/PM) |
%S | 초 (00 to 59) |
%s | 초 (00 to 59) |
%T | 24시간 포맷의 시간 (hh:mm:ss) |
%U | 일요일을 첫째주로 하는 주 (00 to 53) |
%u | 월요일을 첫째주로 하는 주 (00 to 53) |
%V | 일요일을 첫째주로 하는 주 (01 to 53). %X와 함께 사용 |
%v | 월요일을 첫째주로 하는 주 (01 to 53). %x와 함께 사용 |
%W | 요일 영문명 (Sunday to Saturday) |
%w | 요일 where Sunday=0 and Saturday=6 |
%X | 한 주의 첫 번째 요일이 일요일인 주의 연도. %V와 함께 사용 |
%x | 한 주의 첫 번째 요일이 월요일인 주의 연도. %v와 함께 사용 |
%Y | 4자리 형태의 년 |
%y | 2자리 형태의 년 |
수많은 포맷이 있지만 사실 우리가 사용할만한 것은 극히 일부로 정해져 있으니 고민할 필요는 없다.
대표적인 date_format 예시
월을 영어로
SELECT DATE_FORMAT(now(), "%M %d %Y");
# April 24 2022
년월일을 숫자로
SELECT DATE_FORMAT(now(), "%Y%m%d");
# 20220424
년월일시분초 숫자로
SELECT DATE_FORMAT(now(), "%Y%m%d%H%i%s");
# 20220424232617
년월일시분초를 숫자로 변경해서 쓰는 경우가 상당히 많다. 이렇게 변경할 경우 날짜값을 long 형으로 변경이 가능하여 데이터를 처리하는데 속도면에서 유리해질 수 있기 때문이다. 그리고 숫자로 변경하더라도 다시 값을 분해할 때 손실이 되지 않는다.
2022년 4월 24일
SELECT DATE_FORMAT(now(), "%Y년 %c월 %e일");
# 2022년 4월 24일
날짜값에 년, 월, 일과 같이 의존 명사를 붙일 경우 2022년 04월 24일과 같은 식보다는 2022년 4월 24일과 같은 것이 더 자연스러울 것이다. 그래서 월의 경우 %m 대신 %c를 사용하고 마찬가지로 일도 %d 대신 %e를 사용하였다.
'빅데이터 및 DB > MySQL' 카테고리의 다른 글
[MySQL] 뷰(View) 생성 이유 및 뷰 생성,수정,삭제,조회 (0) | 2022.08.12 |
---|---|
[MySQL] Union으로 테이블 합치기 (0) | 2022.08.07 |
[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음) (0) | 2022.04.22 |
[MySQL] Batch 및 Load 비교. (0) | 2018.08.20 |
[MySQL] ROWNUM(번호) 및 페이징(Paging) 처리 (0) | 2018.08.14 |