반응형
DATEDIFF란?
DATEDIFF
는 SQL에서 두 날짜 간의 차이(일수)를 계산하는 함수입니다. 주로 특정 기간 동안의 차이를 구하거나, 두 이벤트 간의 간격을 분석할 때 사용됩니다.
DATEDIFF의 기본 구조
DATEDIFF(단위, 시작_날짜, 종료_날짜)
주요 매개변수:
- 단위: 두 날짜 간의 차이를 계산할 기준(일수, 월수, 연수 등).
- MySQL: 단위 없이 기본적으로 일수 차이를 반환.
- SQL Server: 단위를 지정하여 연도, 월, 일 등 다양한 단위의 차이를 계산.
- 시작_날짜: 차이를 계산할 기준이 되는 시작 날짜.
- 종료_날짜: 차이를 계산할 기준이 되는 종료 날짜.
반환 값:
- 날짜 간의 차이를 정수 값으로 반환.
MySQL에서 DATEDIFF
MySQL에서 DATEDIFF
는 항상 일 단위 차이를 반환하며, 시간은 무시됩니다.
기본 구조
DATEDIFF(종료_날짜, 시작_날짜)
예제:
SELECT DATEDIFF('2024-12-01', '2024-11-24') AS 차이;
차이 |
---|
7 |
'2024-12-01'
에서'2024-11-24'
을 뺀 결과로 7일 차이를 반환.
SQL Server에서 DATEDIFF
SQL Server에서는 단위를 지정하여 다양한 시간 단위의 차이를 계산할 수 있습니다.
기본 구조
DATEDIFF(단위, 시작_날짜, 종료_날짜)
단위 종류:
단위 | 설명 |
---|---|
year |
연도 차이 |
month |
월 차이 |
day |
일수 차이 |
hour |
시간 차이 |
minute |
분 차이 |
second |
초 차이 |
week |
주 단위 차이 |
quarter |
분기 차이 |
예제 1: 일 단위 차이
SELECT DATEDIFF(day, '2024-11-24', '2024-12-01') AS 일_차이;
일_차이 |
---|
7 |
예제 2: 월 단위 차이
SELECT DATEDIFF(month, '2024-01-01', '2024-12-01') AS 월_차이;
월_차이 |
---|
11 |
예제 3: 연 단위 차이
SELECT DATEDIFF(year, '2020-01-01', '2024-01-01') AS 연_차이;
연_차이 |
---|
4 |
예제 4: 시간 단위 차이
SELECT DATEDIFF(hour, '2024-11-24 10:00:00', '2024-11-24 15:00:00') AS 시간_차이;
시간_차이 |
---|
5 |
DATEDIFF의 활용 사례
1. 특정 기간 내 데이터 필터링
예제: 30일 이전에 발생한 주문 데이터 조회.
SELECT *
FROM 주문
WHERE DATEDIFF(CURDATE(), 주문일) <= 30;
2. 만료일 계산
예제: 오늘 기준으로 만료일이 7일 이내인 데이터 조회.
SELECT *
FROM 제품
WHERE DATEDIFF(만료일, CURDATE()) <= 7;
3. 고객 가입 주기 분석
예제: 가입일 기준 1년 이상 된 고객 조회.
SELECT 고객ID, 가입일
FROM 고객
WHERE DATEDIFF(CURDATE(), 가입일) >= 365;
DATEDIFF 주의사항
- 날짜 순서:
DATEDIFF(종료_날짜, 시작_날짜)
의 순서를 반대로 쓰면 부호가 바뀝니다.- 예:
DATEDIFF('2024-11-24', '2024-12-01')
→-7
- 예:
- 시간 무시:
- MySQL의 경우, 시간(HH:MM:SS)은 무시되고 날짜만 비교됩니다.
- SQL Server에서는 시간 단위도 계산 가능.
- 날짜 형식:
- 날짜 형식은 데이터베이스의 설정에 맞춰야 합니다. 일반적으로
YYYY-MM-DD
형식을 사용.
- 날짜 형식은 데이터베이스의 설정에 맞춰야 합니다. 일반적으로
DATEDIFF와 TIMESTAMPDIFF의 차이 (MySQL)
MySQL에서 TIMESTAMPDIFF
는 단위 지정이 가능하며, 보다 세부적인 시간 차이를 계산할 수 있습니다.
TIMESTAMPDIFF 예제:
SELECT TIMESTAMPDIFF(hour, '2024-11-24 10:00:00', '2024-11-24 15:00:00') AS 시간_차이;
시간_차이 |
---|
5 |
요약
DATEDIFF
는 두 날짜 간의 차이를 계산하는 함수.- MySQL: 일 단위 차이만 계산.
- SQL Server: 다양한 단위(연도, 월, 일 등)로 차이를 계산 가능.
- 활용:
- 기간 분석.
- 특정 조건에 따른 데이터 필터링.
- 이벤트 간 간격 계산.
DATEDIFF
는 간단하지만 강력한 시간 분석 도구로, 다양한 비즈니스 로직 구현에 유용합니다! 😊
반응형
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[SQL] EXTRACT 란? (0) | 2024.11.24 |
---|---|
[SQL] CURDATE() 함수란? (0) | 2024.11.24 |
[SQL] DATE_TRUNC이란? (0) | 2024.11.24 |
[SQL] CTE(Common Table Expressions)란? (0) | 2024.11.24 |
[SQL] LEAD 함수란? (0) | 2024.11.24 |
댓글