데이터베이스/MySQL

[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)

떨어지는 용 2018. 3. 28. 11:03

▶MySQL 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)




▶설명


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