안녕하세요.
오늘은 MySQL에서 날짜 형식의 값을 비교하고 계산하는 방법에 대해 알아보겠습니다.
날짜 차이 구하기
▣ 날짜 차이 함수
함수 | 내용 |
DATEDIFF(날짜1, 날짜2) | 날짜1 - 날짜2 차이를 일수로 반환 |
TIMESTAMPDIFF(단위, 날짜1, 날짜2) | 날짜1 - 날짜2 차이를 선택한 단위로 반환 |
MySQL에는 날짜 간의 차이를 가져오는 함수가 크게 두 가지로 나뉩니다.두 날짜의 차이를 단순 일수로 반환하는 DATEDIFF()와 각 단위에 따라 반환하는 TIMESTAMPDIFF가 있습니다.
▣ TIMESTAMPDIFF 단위
SECOND | 초 |
MINUTE | 분 |
HOUR | 시 |
DAY | 일 |
WEEK | 주 |
MONTH | 월 |
QUARTER | 분기 |
YEAR | 년 |
▶ 예제1
쿼리 : SELECT DATEDIFF('2021-01-16', '2017-03-01');
결과 : 1417
▶ 예제2
쿼리 : SELECT TIMESTAMPDIFF(QUARTER, '2021-09-22', '2020-03-28');
결과 : -5
결과를 보면 아시다시피, TIMESTAMPDIFF와 DATEDIFF는 순서에서 차이가 있습니다.
DATEDIFF가 앞의 날짜에서 뒤의 날짜 차이를 구하는 것이라면, TIMESTAMPDIFF는 뒤의 날짜에서 앞의 날짜 차이를 구하므로 실질적인 차이 값을 구하는 것이라면 절대값 ABS()를 표시해서 사용하시면 됩니다.
반응형
날짜 비교하기
▣ 날짜 포멧 함수
함수 | 내용 |
DATE_FORMAT(날짜, 'FORMAT') | 날짜를 해당 포멧으로 변환 |
DATE(날짜) | 날짜를 '연도-월-일'로 변환 |
YEAR(날짜) | 날짜의 연도 반환 |
MONTH(날짜) | 날짜의 월 반환 |
이외에도 많은 날짜 포멧 함수가 있으므로 필요하시다면 아래의 링크를 통해 찾아보시면 됩니다.
▶ 예제
## 조건문 활용
#1 금일 날짜 찾기
where date_format([column], '%Y-%m-%d') = date_format(curdate(), '%Y-%m-%d') #curdate : 금일 날짜
#2 특정 날짜 비교
where ( date([column]) between '2021-03-11' and '2021-06-15')
반응형
'Programming > SQL' 카테고리의 다른 글
[MySQL] View 다루기 (Create, Replace, Drop) (0) | 2021.12.05 |
---|---|
[MySQL] with CTE (공통 테이블 표현식) (0) | 2021.11.18 |
[MySQL] 문자열 함수 정리 (0) | 2021.09.12 |
MySQL Workbench 설치 (Windows) (2) | 2021.08.29 |
[MySQL] 문자열 자르기 (SUBSTR, SUBSTRING) (0) | 2021.08.22 |
댓글