Hey Tech
[MySQL] DATE_FORMAT: 날짜/시간 표기 방식 지정하기 본문
본 포스팅에서는 MySQL 내 date_format 구문을 활용하여 날짜 혹은 시간 표기 방식을 지정하는 방법을 알아봅니다.
목차
1. date_format 표기법
2. 날짜만 출력하기
2.1. 'yyyy-mm-dd' 형태로 출력하기
2.2. 'yy-mm-dd' 형태로 출력하기
3. 시간 정보만 출력하기
3.1. 24시간 제로 출력하기
3.2. 12시간 제로 출력하기
1. date_format 표기법
date_format은 대소문자를 구분하기 때문에 요구사항에 맞는 알파벳을 찾아 적절하게 활용하시길 바랍니다.
Specifier | Description | Example | |
1 | %Y | 연도(year): 4자리 표현 | 2021 |
2 | %y | 연도(year): 뒤에서 2자리 표현 | 21 |
3 | %a | 요일(weekday): 이름 줄임표현 | Mon, Tue, Wed, ... |
4 | %W | 요일(weekday): 이름 | Sunday, ..., Saturday |
5 | %w | 요일(weekday): 숫자 활용 | 0 = Sunday, ... , 6 = Saturday |
6 | %b | 월(month): 이름 줄임표현 | Jan, Feb, Mar, ... |
7 | %M | 월(month): 이름 | January, February, ..., December |
8 | %c | 월(month): 숫자 표기(자릿수 고정 X) | 0, 1, 2, ..., 12 |
9 | %m | 월(month): 숫자 표기(자릿수 2개로 고정) | 00, 01, ..., 12 |
10 | %D | 일(day): 접미사 활용 | 0th, 1st, 2nd, 3rd, ... |
11 | %d | 일(day): 숫자 활용(1개월 단위) | 0, 1, 2, 3, ... |
12 | %j | 일(day): 숫자 활용(1년 단위) | 001, 002, ..., 366 |
13 | %p | 오전/오후 구분 | AM or PM |
14 | %T | 24시간제 시간 표기 | 23:05:12 ("오후 11시 5분 12초") |
15 | %r | 12시간제 시간 표기 및 오전/오후 구분 | 11:05:12 PM |
16 | %f | Microseconds | 000000, ...., 999999 |
17 | %H | 시간(hour): 24시간제 | 00, 01, ..., 23 |
18 | %k | 시간(hour): 24시간제 | 00, 01, ..., 23 |
19 | %h | 시간(hour): 12시간제 | 01, 02, ..., 12 |
20 | %I | 시간(hour): 12시간제 | 01, 02, ..., 12 |
21 | %i | 분(minute): 1시간 단위 | 00, 01, ..., 59 |
22 | %S | 초(seconds) | 00, ..., 59 |
23 | %s | 초(seconds) | 00, ..., 59 |
24 | %U | 주(Week): 1년 단위 (일요일이 1주의 시작) | 00, 01, ..., 53 |
25 | %u | 주(Week): 1년 단위 (월요일이 1주의 시작) | 00, 01, ..., 53 |
26 | %v | 주(Week): 1년 단위 (일요일이 1주의 시작) | 01, 02, ..., 53 |
출처: dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format
2. 날짜만 출력하기
2.1. 'yyyy-mm-dd' 형태로 출력하기
SELECT date_format([칼럼 이름], '%Y-%m-%d')
FROM [테이블 이름]
'2021-03-02'와 같이 날짜 정보를 줄임 없이 출력할 때는 date_format 구문에서 칼럼 이름과 날짜 형식('%Y-%m-%d')을 차례로 입력해 주면 됩니다. 날짜 형식 입력 시 대소문자 구분을 하므로 주의하시길 바랍니다.
예시
SELECT date_format(Now(), '%Y-%m-%d');
Now() 함수는 현재 날짜 및 시간 정보를 제공합니다.
2022-03-04
2.2. 'yy-mm-dd' 형태로 출력하기
이번에는 연도의 뒤에서 두 자리만 출력하고 싶을 경우, 연도 정보에서 대문자 'Y'를 소문자 'y'로 변경해 주시면 됩니다.
예시
SELECT date_format(Now(), '%y-%m-%d');
출력결과
22-03-04
3. 시간 정보만 출력하기
시간 정보 표기방식은 크게 24시간제와 12시간 제로 나눌 수 있습니다. 각각 알아봅니다.
3.1. 24시간제로 출력하기
방법1: %H-%i-%s
SELECT date_format(Now(), '%H-%i-%s');
오전 7시 2분 56초의 24시간제 표기법은 '07-02-56'이죠. 시간 표기방식은 '%H-%i-%s' 입니다.
07-06-53
방법2: %T
SELECT date_format(datetime, '%T');
%T와 같이 더욱 간단한 표기방법도 있습니다. 방법1과의 차이점은 출력 결과에 시간 구분이 하이픈(-)에서 콜론(:)으로 바뀌었다는 점입니다.
07:02:56
3.2. 12시간 제로 출력하기
SELECT date_format(Now(), '%h-%i-%s');
이번에는 오전/오후를 구분하지 않고 12시간제로 시간 정보를 출력하는 방법입니다.
24시간제 표기법에 사용했던 대문자 'H'를 소문자 'h'로 바꿔주면 됩니다.
예시
SELECT date_format(Now(), '%h-%i-%s');
07-08-57
Last Updated @2022-03-14
- sdf 님께서 피드백 주신 포스팅 내 오류 수정
- 새로운 테이블 생성을 통한 예제 활용에서 Now() 함수를 활용한 예제 활용으로 수정
포스팅 내용에 오류가 있을 경우 아래에 댓글 남겨 주시면 감사드리겠습니다.
그럼 오늘도 건강한 하루 보내시길 바랍니다 :-)
고맙습니다.
'AI & 빅데이터 > MySQL' 카테고리의 다른 글
[MySQL] 사용자 비밀번호 변경 방법 (0) | 2021.12.31 |
---|---|
MacOS에서 MySQL 설치/실행/중지/삭제 방법! (2) | 2021.12.01 |
[MySQL] Update: 특정 데이터 변경하기! (0) | 2021.11.29 |