데이터베이스에서 날짜와 시간 관련 정보를 다룰 때, 원하는 형식으로 날짜를 출력하거나 변환하는 작업은 필수적입니다. MYSQL에서는 DATE_FORMAT 함수를 사용하여 날짜와 시간을 다양한 형식으로 쉽게 변환할 수 있습니다. 이번 글에서는 DATE_FORMAT의 활용 방법과 다양한 형식 옵션에 대해 알아보겠습니다.
1. 기본 날짜 형식
MYSQL에서 날짜를 지정하는 기본 형식은 'YYYY-MM-DD HH:MM:SS'입니다.
예를 들어, '2021-02-08 00:00:00'과 같이 표현됩니다.
2. 오늘 날짜와 시간 얻기
- now()
- 현재의 날짜와 시간을 반환합니다.
- CURDATE()
- 현재의 날짜만 반환합니다.
- CURTIME()
- 현재의 시간만 반환합니다.
3. DATE_FORMAT을 이용한 날짜 형식 변환
- DATE_FORMAT(now(), '%Y-%m-%d')
- 현재 날짜를 'YYYY-MM-DD' 형식으로 변환합니다.
- 결과: 2021-02-08
- DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')
- 현재 날짜와 시간을 'YYYY-MM-DD HH:MM:SS' 형식으로 변환합니다.
- 결과: 2021-02-08 19:31:08
- DATE_FORMAT(now(), '%Y-%m-%d 00:00:00')
- 현재 날짜에 특정 시간을 지정하여 출력합니다.
- 결과: 2021-02-08 00:00:00
4. 다양한 날짜 형식 옵션
DATE_FORMAT 함수는 다양한 형식 옵션을 제공합니다. `%Y`는 연도, `%m`은 월, `%d`는 일, `%H`는 24시간 형식의 시간, `%i`는 분, `%s`는 초를 나타냅니다. 이 외에도 다양한 옵션을 조합하여 원하는 형식으로 날짜와 시간을 출력할 수 있습니다.
명칭 | 출력문자 | 출력설명 |
연 | %Y | 4자리 연도 |
연 | %y | 2자리 연도 |
월 | %m | 2자리 월 (01-12) |
월 | %c | 1자리 월 (1-12) |
월 | %M | 영어 이름(January, February…) |
월 | %b | 영어 줄인 이름(Jan, Feb…) |
일 | %d | 2자리 일 (01-31) |
일 | %e | 1자리 일 (1-31) |
일 | %D | 1st, 2nd, 3th, 4th, ... |
시 | %H | 두자리 24시간 (00-23) |
시 | %h | 두자리 12시간 (01-12) |
시 | %I | (대문자 i ) 두자리 12시간 (01-12) |
시 | %k | 한자리 24시간 (0-23) |
시 | %l | (소문자 L) 한자리 12시간 (1-12) |
분 | %i | 2자리 (00-59) |
초 | %S / %s | 2자리 (00-59) |
마이크로초 | %f | 100만분의1초 인데 나오지 않는듯 |
오전/오후 | %p | AM/PM |
시분초 | %T | 24시간 형식 (hh:mm:ss) |
시분초 오전/오후 | %r | 12시간 형식 (hh:mm:ss AM/PM) |
n일째 | %j | 그해의 몇번째 일인지 표시 (001-366) |
n일째 | %w | 그주의 몇번째 일인지 표시 (0=일요일, 6=토요일) |
주 | %W | 요일 이름(Monday,Tuesday…) |
주 | %a | 요일 줄인 이름(Mon,Tue…) |
주 수 | %U | 그해의 몇번째 주인지 표시 (00-54) 일요일이 주의 첫번째일 |
주 수 | %u | 그해의 몇번째 주인지 표시 (01-54) 월요일이 주의 첫번째일 |
연 / 주 | %X / %V | 그주가 시작된 해와 몇번째 주인지 출력, 일요일이 주의 첫번째일 %X 와 함께사용 ex> 2020년 1월 1일(수) : 2019년의52번째 주 2019/52 |
연 / 주 | %x / %v | 그주가 시작된 해와 몇번째 주인지 출력 (01-53) 월요일이 주의 첫번째일 %x 와 함께사용 ex> 2020년 1월 1일(수) : 2020년의01번째 주 2020/01 |
결론
MYSQL의 DATE_FORMAT 함수를 활용하면, 다양한 요구사항에 맞게 날짜와 시간 정보를 효율적으로 변환할 수 있습니다. 이를 통해 데이터베이스에서 날짜와 시간 관련 작업을 보다 유연하게 처리할 수 있습니다.
'Language > SQL' 카테고리의 다른 글
[MYSQL] 쿼리문으로 연령대별 인원수 평균점수 구하기 (0) | 2021.03.02 |
---|---|
[MySQL] 쿼리문 동작을 보다 쉽게 보기 위한 HeidiSQL(하이디SQL) (0) | 2021.02.18 |
[MYSQL] 쿼리문을 이용한 매시간대별 방문 통계 구하기 (0) | 2021.02.04 |
[MYSQL] 시간대별 방문자 통계 구하기 (0) | 2021.02.04 |
[MYSQL] 다중테이블 JOIN문 쓰기 (0) | 2021.01.12 |