JaeWon's Devlog
article thumbnail
반응형

1. 서론

- MySQL 에서 날짜 차이를 구하기 위해 DATEDIFF, TIMESTAMPDIFF 함수를 사용합니다.

- 간단하게 일(day) 차이를 구할 때는 DATEDIFF 함수를 사용.

- 이외에 연(year), 월(month), 시간(hour), 초(second) 등을 지정하여 구할 때는 TIMESTAMPDIFF 함수를 사용.

2. 사용법

2-1. DATEDIFF

- 기본적으로 날짜1 - 날짜2 로 계산됩니다.

DATEDIFF(날짜1, 날짜2);

2-2. TIMESTAMPDIFF

- 기본적으로 날짜2 - 날짜1 로 계산됩니다.

TIMESTAMPDIFF(단위, 날짜1, 날짜2);

- 단위의 종류로는 아래와 같습니다.

  • SECOND : 초
  • MINUTE : 분
  • HOUR : 시간
  • DAY : 일
  • WEEK : 주
  • MONTH : 월
  • QUARTER : 분기
  • YEAR : 연도

3. 예제

3-1. DATEDIFF

SELECT DATEDIFF('2022-08-26', '2022-08-01') FROM DUAL;
//	25

SELECT DATEDIFF('2022-08-26 16:33:20', '2022-08-01 00:00:00') FROM DUAL;
//	25

SELECT DATEDIFF('2022-08-01', '2022-08-25') FROM DUAL;
//	-25

3-2. TIMESTAMPDIFF

  • SECOND : 초
SELECT TIMESTAMPDIFF(SECOND, '2022-08-26 15:30:33', '2022-08-26 15:32:21') FROM DUAL;
//	108
  • MINUTE : 분
SELECT TIMESTAMPDIFF(MINUTE, '2022-08-26 15:30:33', '2022-08-26 15:32:21') FROM DUAL;
//	1 -> 108초는 2분이 아니기 때문에 1분으로 조회
  • HOUR : 시간
SELECT TIMESTAMPDIFF(HOUR, '2022-08-26 15:30:33', '2022-08-26 17:32:21') FROM DUAL;
//	2
  • DAY : 일
SELECT TIMESTAMPDIFF(DAY, '2022-08-26 15:30:33', '2022-09-01 17:32:21') FROM DUAL;
//	6
  • WEEK : 주
SELECT TIMESTAMPDIFF(WEEK, '2022-08-26 15:30:33', '2022-09-01 17:32:21') FROM DUAL;
//	0 -> 1주일인 7일이 안지났기 때문에 0 으로 조회
  • MONTH : 월
SELECT TIMESTAMPDIFF(MONTH, '2022-08-26 15:30:33', '2022-12-01 17:32:21') FROM DUAL;
//	3
  • QUARTER : 분기
SELECT TIMESTAMPDIFF(QUARTER, '2022-08-26 15:30:33', '2023-02-01 17:32:21') FROM DUAL;
//	1 -> 1분기(3개월) 씩이므로 6개월이 안지났기 때문에 1으로 조회
  • YEAR : 연도
SELECT TIMESTAMPDIFF(QUARTER, '2022-08-26 15:30:33', '2023-02-01 17:32:21') FROM DUAL;
//	0 -> 1년(12개월)이 안지났기 때문에 0으로 조회

참고

- https://extbrain.tistory.com/78

반응형
profile

JaeWon's Devlog

@Wonol

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!