반응형
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으로 조회
참고
반응형
'BackEnd > DataBase' 카테고리의 다른 글
[DB] CouchBase 설치하기(With. Intel Mac) (2) | 2022.11.13 |
---|---|
[DB] NoSQL DataBase 정리 (2) | 2022.11.12 |
[MYSQL] IN, EXISTS 절 활용하기 (0) | 2022.08.27 |
[MySQL] abs 함수를 통한 절대값 구하기 (0) | 2022.08.26 |
[DB] DELETE 쿼리 시 Join 사용하기(MySQL) (0) | 2022.07.20 |