본문 바로가기
Programming/SQL

[MySQL] 날짜 비교 및 차이 구하기

by 코딩하는 금융인 2021. 9. 22.

안녕하세요.

오늘은 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(날짜) 날짜의 월 반환

이외에도 많은 날짜 포멧 함수가 있으므로 필요하시다면 아래의 링크를 통해 찾아보시면 됩니다.

- MySQL Date & Time Functions

 

MySQL - Date and Time Functions

MySQL - Date and Time Functions ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days) When invoked with the INTERVAL form of the second argument, ADDDATE() is a synonym for DATE_ADD(). The related function SUBDATE() is a synonym for DATE_SUB(). For informat

www.tutorialspoint.com

 

 예제

## 조건문 활용
#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')

 

반응형

댓글