MSSQL에서 날짜 데이터를 다룰 때 연산이 필요한 경우가 많습니다.
예를 들어, "30일 후 날짜 구하기", "두 날짜 간 차이 계산" 같은 연산이 필요할 때가 있죠.
이번 포스팅에서는 DATEADD
, DATEDIFF
, GETDATE
함수를 활용하여 날짜 연산을 쉽게 하는 방법을 정리해보겠습니다! ✅
🎯 1. 현재 날짜 가져오기 (GETDATE()
)
GETDATE()
는 현재 날짜와 시간을 반환하는 함수입니다.
SELECT GETDATE() AS CurrentDateTime;
✅ 출력 예시
📅 2025-03-19 14:35:20.123
만약 날짜만 필요하다면?
SELECT CAST(GETDATE() AS DATE) AS CurrentDate;
📅 2025-03-19
🎯 2. 특정 날짜에서 일, 월, 년 더하기 (DATEADD
)
DATEADD
함수는 특정 날짜에 일(day), 월(month), 연(year) 등을 더하거나 뺄 때 사용합니다.
SELECT DATEADD(DAY, 10, GETDATE()) AS Add10Days;
SELECT DATEADD(MONTH, -2, GETDATE()) AS Subtract2Months;
SELECT DATEADD(YEAR, 5, '2025-01-01') AS Add5Years;
✅ 출력 예시
- 10일 후:
2025-03-29
- 2개월 전:
2025-01-19
- 5년 후:
2030-01-01
📌 DATEADD(단위, 추가할 값, 기준 날짜)
형식으로 사용합니다.
| 단위 | 설명 |
| --- | --- |
| YEAR
| 년 (Y, YY, YYYY 가능) |
| MONTH
| 월 (M, MM 가능) |
| DAY
| 일 (D, DD 가능) |
| HOUR
| 시간 |
| MINUTE
| 분 |
| SECOND
| 초 |
🎯 3. 두 날짜 간 차이 계산 (DATEDIFF
)
두 날짜 간의 차이를 계산할 때는 DATEDIFF
를 사용합니다.
SELECT DATEDIFF(DAY, '2025-01-01', GETDATE()) AS DaysDiff;
SELECT DATEDIFF(MONTH, '2024-01-01', '2025-03-01') AS MonthsDiff;
SELECT DATEDIFF(YEAR, '2000-01-01', '2025-01-01') AS YearsDiff;
✅ 출력 예시
2025-01-01
부터 오늘까지의 일 수 차이:77
2024-01-01
부터2025-03-01
까지의 개월 수 차이:14
2000-01-01
부터2025-01-01
까지의 연도 차이:25
📌 DATEDIFF(단위, 시작 날짜, 종료 날짜)
형식으로 사용합니다.
| 단위 | 설명 |
| --- | --- |
| YEAR
| 연도 차이 |
| MONTH
| 개월 차이 |
| DAY
| 일 수 차이 |
| HOUR
| 시간 차이 |
| MINUTE
| 분 차이 |
| SECOND
| 초 차이 |
🎯 4. 특정 날짜의 시작과 끝 구하기
1️⃣ 해당 월의 첫 날 구하기
SELECT DATEADD(DAY, 1-DAY(GETDATE()), GETDATE()) AS FirstDayOfMonth;
📅 예시: 2025-03-01
2️⃣ 해당 월의 마지막 날 구하기
SELECT EOMONTH(GETDATE()) AS LastDayOfMonth;
📅 예시: 2025-03-31
3️⃣ 해당 연도의 첫 날 & 마지막 날 구하기
-- 첫 날
SELECT DATEFROMPARTS(YEAR(GETDATE()), 1, 1) AS FirstDayOfYear;
-- 마지막 날
SELECT DATEFROMPARTS(YEAR(GETDATE()), 12, 31) AS LastDayOfYear;
📅 예시:
- 첫 날:
2025-01-01
- 마지막 날:
2025-12-31
🎯 5. 실전 예제
1️⃣ 최근 7일간 데이터 조회
SELECT * FROM Orders
WHERE OrderDate >= DATEADD(DAY, -7, GETDATE());
2️⃣ 이번 달의 주문 내역 조회
SELECT * FROM Orders
WHERE OrderDate >= DATEADD(DAY, 1-DAY(GETDATE()), GETDATE())
AND OrderDate <= EOMONTH(GETDATE());
3️⃣ 올해 등록된 회원 수 구하기
SELECT COUNT(*) AS UserCount
FROM Users
WHERE JoinDate >= DATEFROMPARTS(YEAR(GETDATE()), 1, 1);
🎯 마무리
MSSQL에서 날짜 연산을 쉽게 하려면 3가지 함수를 기억하세요!
✅ GETDATE()
→ 현재 날짜 가져오기
✅ DATEADD()
→ 날짜 더하거나 빼기
✅ DATEDIFF()
→ 두 날짜 간 차이 구하기
이제 날짜 연산이 필요한 SQL을 더 쉽게 작성할 수 있을 거예요! 🚀
추가 질문이 있다면 댓글로 남겨주세요! 😊
📌 태그#MSSQL #SQL #DATEADD #DATEDIFF #GETDATE #데이터분석 #쿼리 #날짜연산
'Programming' 카테고리의 다른 글
🚀 MSSQL에서 레코드 가져오기 (TOP, OFFSET, LEAD 등) 완벽 정리 (0) | 2025.03.21 |
---|---|
🚀 MSSQL에서 중복 데이터 처리(중복 제거 및 찾기) 완벽 가이드 (0) | 2025.03.20 |
🚀 MSSQL에서 문자열 합치기 & 분할하기 완벽 가이드 (0) | 2025.03.18 |
🎯 MSSQL에서 GROUP BY와 HAVING 차이점 쉽게 이해하기 (0) | 2025.03.17 |
🚀 MSSQL에서 PARTITION BY를 활용한 고급 쿼리 작성법 (0) | 2025.03.16 |