이 글에서는 SQL Server에서 날짜 및 시간을 처리하는 DATEADD 함수의 사용 방법을 구체적인 문법과 다양한 예제를 통해 자세히 소개합니다. DATEADD 함수를 제대로 이해하면 쿼리에서 날짜 계산을 훨씬 쉽고 직관적으로 처리할 수 있습니다.
DATEADD 함수란?
SQL Server의 DATEADD 함수는 지정한 날짜·시간 값에 특정 시간 간격만큼 더하거나 빼서 새로운 날짜 값을 반환하는 함수입니다.
문법
SQL Server에서 DATEADD 함수를 사용하는 기본 문법은 다음과 같습니다.
DATEADD(datepart, number, date)매개변수 설명
- datepart: 더하기 또는 빼기 연산에 사용할 시간 단위입니다. 사용할 수 있는 값은 아래 표를 참고하세요.
값 설명 year, yyyy, yy 연도 quarter, qq, q 분기 month, mm, m 월 dayofyear, dy, y 연 기준 일수(1월 1일부터의 일수) day, dd, d 일 week, ww, wk 주 weekday, dw, w 요일 hour, hh 시간 minute, mi, n 분 second, ss, s 초 millisecond, ms 밀리초 - number: 더하거나 뺄 시간의 양을 나타내는 값입니다.
- date: number 값을 적용할 기준이 되는 날짜 또는 시간 값입니다.
참고 사항
- number가 0보다 큰 경우, DATEADD 함수는 이 값을 증가시킬 시간으로 인식하여 date 매개변수에 더합니다.
- number가 0보다 작은 경우, DATEADD 함수는 이 값을 감소시킬 시간으로 인식하여 date 매개변수에서 뺍니다.
- number가 소수인 경우, DATEADD 함수는 정수 부분만 사용하며 소수점 이하 값은 무시됩니다.
- DATEADD 함수는 SQL Server 2005, 2008, 2008 R2, 2012, 2014, 2016, 2017 등 이후 버전에서 모두 사용할 수 있습니다.
사용 예제
실제 예제를 통해 DATEADD 함수가 어떻게 동작하는지 살펴보겠습니다.
SELECT DATEADD(year, 1, '2019/04/28');
-- 결과: '2020-04-28 00:00:00.000'
SELECT DATEADD(yyyy, 1, '2019/04/28');
-- 결과: '2020-04-28 00:00:00.000'
SELECT DATEADD(yy, 1, '2019/04/28');
-- 결과: '2020-04-28 00:00:00.000'
SELECT DATEADD(year, -1, '2019/04/28');
-- 결과: '2018-04-28 00:00:00.000'
SELECT DATEADD(month, 1, '2019/04/28');
-- 결과: '2019-05-28 00:00:00.000'
SELECT DATEADD(month, -1, '2019/04/28');
-- 결과: '2019-03-28 00:00:00.000'
SELECT DATEADD(day, 1, '2019/04/28');
-- 결과: '2019-04-29 00:00:00.000'
SELECT DATEADD(day, -1, '2019/04/28');
-- 결과: '2019-04-27 00:00:00.000'위 예제에서 확인할 수 있듯이, year, yyyy, yy처럼 동일한 의미를 가진 여러 약어를 자유롭게 사용할 수 있으며, 음수 값을 넣으면 해당 날짜에서 지정한 시간만큼 과거로 이동합니다. 이러한 특성을 활용하면 만료일 계산, 배치 작업 기간 설정, 통계 조회 범위 지정 등 실무에서 다양하게 활용할 수 있습니다.