MySQL 시간 관련 함수들
쿼리를 짜다 보면 종종 특정 시간 기준으로 더하거나 빼거나 포맷팅을 하거나 하는데 MySQL에서 여러 함수들을 제공합니다. MySQL에서 자주 쓰는 시간 관련 함수들을 알아보도록 합시다.
- DATE_ADD
- DATE_SUB
- DATEDIFF
- TIMESTAMPDIFF
- DATE_FORMAT
DATE_ADD
DATE_ADD(기준 날짜, INTERVAL)
// SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 제공
EX) SELECT DATE_ADD('2023-08-18 00:00:00', INTERVAL 1 MINUTE);
// OUTPUT: 2023-08-18 00:01:00
DATE_SUB
DATE_SUB(기준 날짜, INTERVAL)
// SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 제공
EX) SELECT DATE_SUB('2023-08-18 00:00:00', INTERVAL 1 MINUTE);
// OUTPUT: 2023-08-17 23:59:00
DATEDIFF
DATEDIFF(날짜1, 날짜2)
// 두 날짜 사이 일 수를 구합니다.
// 날짜1 - 날짜2
EX) SELECT DATEDIFF('2023-08-18 00:00:00', '2023-08-17 00:00:00');
// OUTPUT: 1
// 여기서 중요한 건 24시간 기준이 아니라 날짜 기준이라는 겁니다.
EX) SELECT DATEDIFF('2023-08-18 00:00:00', '2023-08-17 18:00:00');
// OUTPUT: 1
EX) SELECT DATEDIFF('2023-08-19 00:00:00', '2023-08-17 18:00:00');
// OUTPUT: 2
TIMESTAMPDIFF
TIMESTAMPDIFF(단위, 날짜1, 날짜2)
// 단위 SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR 제공
// 두 날짜 사이 기간을 단위 값으로 계산하여 줍니다.
// 이건 DATEDIFF와 다르게 날짜2가 더 미래가 되어야 합니다.
// 날짜1 값이 미래라면 마이너스 값으로 나옵니다.
EX) SELECT TIMESTAMPDIFF(MINUTE, '2023-08-17 00:00:00', '2023-08-18 00:00:00');
// OUTPUT : 1440
EX) SELECT TIMESTAMPDIFF(SECOND, '2023-08-17 00:00:00', '2023-08-18 00:00:00');
// OUTPUT : 86400
DATE_FORMAT
DATE_FORMAT(날짜, 포맷형식)
EX) SELECT DATE_FORMAT('2023-08-18 00:00:00', '%Y%m%d');
// OUTPUT : 20230818
EX) SELECT DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s');
// OUTPUT : 2023-08-18 02:20:31
FORMAT 형식 정리
참조 : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
Specifier | Description |
%Y | 4자리 연도 |
%y | 2자리 연도 |
%M | 영문 월 (풀 네이밍) ex) August |
%b | 영문 월 ex) Aug |
%m | 숫자 월 |
%c | 숫자 월 (한자리로 표현) ex) 07 -> 7 |
%d | 일자 |
%e | 일자 (한자리로 표현) ex) 05 -> 5 |
%I or %h | 시간 (12시간제) |
%H | 시간 (24시간제) |
%i | 분 |
%r | hh:mm:ss AM,PM (12시간제) |
%T | hh:mm:ss (24시간제) |
%S or %s | 초 |
%p | AM or PM |
%f | 마이크로 초 |
반응형
'MySQL' 카테고리의 다른 글
MySQL JSON 데이터 사용하기 (JSON_TABLE, JSON_OBJECT, JSON_ARRAY) (1) | 2023.12.15 |
---|---|
데이터베이스 인덱스란? 클러스터 인덱스와 넌클러스터 인덱스 개념 차이점 (1) | 2023.11.03 |
MySQL 타입 변환 Cast / Convert (0) | 2023.10.16 |
MySQL Json 사용법 Json table SELECT, INSERT, UPDATE 방법 (0) | 2023.10.06 |