In SQL Server, many operations involve adjusting a date—moving it forward, calculating durations, or reviewing past events. The DATEADD
function is built for this purpose.
With it, you can shift a date by a specific interval, like days, months, or years. This article introduces you to the syntax, shows how it works through examples, and gives you a clear way to apply it in your queries.
DATEADD Function Examples
Adding Days to a Date
SELECT DATEADD(day, 5, '2023-12-25');
Getting the Date from 3 Months Ago
SELECT DATEADD(month, -3, GETDATE());
Calculating Due Dates from a Task Table
SELECT TaskName,
DATEADD(day, DurationInDays, StartDate) AS Deadline
FROM Tasks;
Estimating Past Events
SELECT EventName,
DATEADD(year, -YearsAgo, GETDATE())
FROM HistoricalEvents;
Best Practices
Use precise date types
Use DATETIME2
for modern systems where accuracy and a larger date range are required.
Integer intervals only
DATEADD
doesn’t support fractional time intervals—only integers. Decimal values will be silently truncated.
Watch for overflows
Don’t assume all results will be valid. Always test for large additions or subtractions that could push dates out of range.
Document your intent
Use aliases like AS Deadline
or AS AdjustedDate
to make the purpose of your expressions clear, especially in large or dynamic queries.
FAQ
What is the purpose of DATEADD?
It adjusts a date by adding or subtracting a time unit like days, months, or years.
Why should I use DATEADD instead of adding numbers to dates?
It handles date logic internally and avoids common calculation issues such as leap year misalignment.
Can I use this function with date columns or expressions?
Yes. You can use column values, date literals, or expressions like GETDATE()
as the date parameter.
How can I avoid unexpected behavior?
Avoid decimal values for the interval (they’ll be truncated), use appropriate data types like DATETIME2
, and check that output dates stay within supported ranges.
Conclusion
The DATEADD
function is a fundamental part of working with dates in SQL Server. It’s designed for clarity and precision, making it easy to adjust time data programmatically.
From project timelines to historical analysis, you can use DATEADD
to streamline your SQL logic and keep your queries clean and readable.
To learn more and explore additional scenarios, read SQL Server DATEADD: The Complete Guide.
Top comments (0)