🔍 요약: MS-SQL의 DATEDIFF 함수를 활용해 날짜 간격을 쉽게 계산해보세요. 일, 월, 시간 단위까지 실무에 바로 적용 가능한 예제로 정리했습니다.

쿼리 작성시 두 날짜 사이의 차이를 구해야 하는 경우가 자주 있습니다. MS-SQL에서는 이런경우 사용하는 함수가 DATEDIFF 입니다. 두 날짜(시간) 사이의 차이를 기준 단위(년,월,일,시,분,초)로 계산해 주는 아주 유용한 함수에요.
주차장의 입/출차 시간으로 주차시간 계산, 생년월일로 현재 나이계산, 도서관에서 대여/반납 일자를 이용하여 대여기간 계산등 아주 다양한 분야에서 다양한 방법으로 사용되는 함수이니 만큼 꼭 숙지하시길 바래요.
반응형
1. DATEDIFF 함수 기본 문법
DATEDIFF (datepart, startdate, enddate)
- datepart: 차이를 계산할 단위 (예: day, month, year 등)
- startdate, enddate: 비교할 두 날짜 값
2. DATEDIFF 함수 기본 사용 예제
SELECT DATEDIFF(DAY, '2025-01-01', GETDATE()) AS DaysPassed
✅ 2025-01-01부터 오늘까지 며칠이 지났는지 계산합니다.
3. DATEDIFF 함수 datepart 옵션 정리
| datepart | 의미 | 예시 결과 |
| year | 연도 차이 | 1 |
| quarter | 분기 차이 | 2 |
| month | 개월 차이 | 3 |
| day | 날짜 차이 | 100 |
| hour | 시간 차이 | 2400 |
| mimute | 분 차이 | 144000 |
| second | 초 차이 | 8640000 |
반응형
4. DATEDIFF 실무 예제: 회원 가입 경과 일수 계산
테이블 예시
CREATE TABLE Members (
MemberID INT,
Name NVARCHAR(50),
JoinDate DATETIME
);
실습 쿼리
SELECT
Name,
JoinDate,
DATEDIFF(DAY, JoinDate, GETDATE()) AS DaysSinceJoin
FROM Members;
✅ 결과: 각 회원이 가입한 후 경과된 일수가 계산됩니다.
5. DATEDIFF를 WHERE 절에 활용
SELECT *
FROM Orders
WHERE DATEDIFF(DAY, OrderDate, GETDATE()) <= 7;
📌 최근 7일 이내 주문 건만 조회할 수 있습니다.
실무에서 리포트, 알림, 기간 필터링에 매우 유용합니다.
반응형
6. DATEDIFF 주의할 점
- DATEDIFF는 경과된 단위의 '수치'만 반환합니다. 예를 들어, 2025-06-05 23:59와 2025-06-06 00:01도 DATEDIFF(DAY, ...)이면 하루 차이로 계산됩니다.
- 시간 단위 계산 시, 정밀도가 필요한 작업에는 DATEDIFF_BIG() 또는 초/분 단위 변환 함수와 병행 사용을 고려하세요.
📝 마무리 정리
- DATEDIFF는 날짜 간격을 수치화하는 강력한 함수로, 실무에서 리포트나 기간 필터링에 자주 사용됩니다.
- 다양한 datepart를 활용해 일, 월, 시간, 초 단위까지 자유롭게 비교할 수 있습니다.
- WHERE, SELECT, HAVING 등 다양한 SQL 문장에서 쉽게 적용 가능합니다.
💬 읽어주셔서 감사합니다.
공감 + 댓글 은 큰 힘이 됩니다.
여러분의 응원은 컨텐츠 제작에 큰 힘이 됩니다! 😊
반응형
'DATABASE' 카테고리의 다른 글
| [MS-SQL] CASE 문 완전정복 – 조건 분기로 실무 SQL 마스터하기 (4) | 2025.07.28 |
|---|---|
| [MS-SQL] CONVERT 함수 완벽 이해하기 – 실습 예제와 함께 배우는 변환 함수 (3) | 2025.07.28 |