DB
[MariaDB] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)
심나라
2022. 6. 14. 14:10
728x90
MariaDB에 두 날짜간의 차이를 가져올 때 사용하는 함수가 두 가지 있습니다.
DATEDIFF 함수 : 두 날짜간 일 차이를 가져올 때 사용하는 함수.
TIMESTAMPDIFF 함수 : 날짜간 차이를 연, 분기, 월, 주, 일, 시, 분, 초를 지정하여 가져올 때 사용하는 함수.
1. DATEDIFF 함수
/*
DATEDIFF(날짜1, 날짜2)
간단히 말하자면 날짜1 - 날짜2 처럼 처리합니다.
*/
SELECT DATEDIFF('2022-06-14', '2022-07-14');
SELECT DATEDIFF('2022-06-14 00:00:00', '2022-07-14 00:00:00');
2. TIMESTAMPDIFF 함수
-- TIMESTAMPDIFF(단위, 날짜1, 날짜2)
SELECT TIMESTAMPDIFF(HOUR, '2022-06-14', '2022-06-15');
SELECT TIMESTAMPDIFF(HOUR, '2022-06-14 00:00:00', '2022-06-15 06:00:00');
- TIMESTAMPDIFF 단위
SECOND | 초 | MINUTE | 분 | HOUR | 시간 |
DAY | 일 | WEEK | 주 | MONTH | 월 |
QUARTER | 분기 | YEAR | 연 |
3. 예제 쿼리
'2022-06-14'와 현재 시간이 1시간 미만 차이일 경우 '00분전'
'2022-06-14'와 현재 날짜가 1일 미만 차이일 경우 '00시간전'
'2022-06-14'와 현재 날짜가 4일 미만 차이일 경우 '00일전'
그 외에는 '2022.06.14' 포맷으로 출력
SELECT
(CASE WHEN TIMESTAMPDIFF(HOUR, '2022-06-14 00:00:00', NOW()) < 1 THEN CONCAT(TIMESTAMPDIFF(MINUTE, '2022-06-14 00:00:00', NOW()), '분전')
WHEN DATEDIFF(NOW(), '2022-06-14 00:00:00') < 1 THEN CONCAT(TIMESTAMPDIFF(HOUR, '2022-06-14 00:00:00', NOW()), '시간전')
WHEN DATEDIFF(NOW(), '2022-06-14 00:00:00') < 4 THEN CONCAT(DATEDIFF(NOW(), '2022-06-14 00:00:00'), '일전')
ELSE DATE_FORMAT('2022-06-14 00:00:00', '%Y.%m.%d') END
) AS DiffDate
FROM DUAL;
728x90