▶설명
MySQL에서 두 날짜간의 차이를 가져올 때 사용하는 함수가 두 가지가 있습니다.
단순히 일 차이를 가져올 때 사용하는 것이 DATEDIFF 함수입니다.
이 외에도 차이를 연, 분기, 월, 주, 일, 시, 분, 초를 지정하여 가져올 때 사용하는 함수가 TIMESTAMPDIFF 함수입니다.
▶사용법
DATEDIFF
DATEDIFF(날짜1, 날짜2);
* 간단히 말하자면 날짜1 - 날짜2 동작입니다.
TIMESTAMPDIFF
TIMESTAMPDIFF(단위, 날짜1, 날짜2);
단위
- SECOND : 초
- MINUTE : 분
- HOUR : 시
- DAY : 일
- WEEK : 주
- MONTH : 월
- QUARTER : 분기
- YEAR : 연
▶예제 쿼리 (Example Query)
DATEDIFF 예제1
쿼리SELECT TIMESTAMPDIFF(QUARTER, '2017-03-01', '2018-03-28');
결과
392
DATEDIFF 예제2
쿼리SELECT DATEDIFF('2018-03-28 23:59:59', '2017-03-01 00:00:00');
결과
392
TIMESTAMPDIFF : 초
쿼리SELECT TIMESTAMPDIFF(SECOND, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(SECOND, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
33868800
TIMESTAMPDIFF : 분
쿼리SELECT TIMESTAMPDIFF(MINUTE, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(MINUTE, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
564480
TIMESTAMPDIFF : 시
쿼리SELECT TIMESTAMPDIFF(HOUR, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(HOUR, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
9408
TIMESTAMPDIFF : 일
쿼리SELECT TIMESTAMPDIFF(DAY, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(DAY, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
392
TIMESTAMPDIFF : 주
쿼리SELECT TIMESTAMPDIFF(WEEK, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(WEEK, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
56
TIMESTAMPDIFF : 월
쿼리SELECT TIMESTAMPDIFF(MONTH, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(MONTH, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
12
TIMESTAMPDIFF : 분기
쿼리SELECT TIMESTAMPDIFF(QUARTER, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(QUARTER, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
4
TIMESTAMPDIFF : 연
쿼리SELECT TIMESTAMPDIFF(YEAR, '2017-03-01', '2018-03-28'); -- SELECT TIMESTAMPDIFF(YEAR, '2017-03-01 00:00:00', '2018-03-28 00:00:00');
결과
1
출처: https://extbrain.tistory.com/78 [확장형 뇌 저장소]
출처: https://extbrain.tistory.com/78 [확장형 뇌 저장소]