SQL

SQL DATEADD() Function: Syntax, Usage, and Examples

The SQL DATEADD function lets you add or subtract a specified time interval from a date. It’s commonly used for scheduling, setting future deadlines, or shifting timestamps for reporting. DATEADD SQL is primarily supported in SQL Server and Transact-SQL environments.

How to Use DATEADD in SQL

The general syntax for SQL DATEADD is:

DATEADD(datepart, number, date)
  • datepart: The unit of time to add (e.g., year, month, day, hour)
  • number: The number of units to add (can be negative to subtract)
  • date: The base date to modify

Basic Example

SELECT DATEADD(day, 7, '2023-05-01') AS new_date;
-- Output: 2023-05-08

This query adds 7 days to May 1, 2023.

When to Use DATEADD SQL

The sql dateadd function is useful anytime you need to shift a date or time value programmatically. Use cases include:

  • Calculating expiration or renewal dates
  • Forecasting future tasks or deadlines
  • Subtracting days from current timestamps
  • Creating rolling time windows in reports
  • Automating recurring event dates

Real-Life Scenarios

Setting Subscription End Dates

SELECT user_id, DATEADD(month, 1, start_date) AS renewal_date
FROM subscriptions;

Adds one month to each user's start date.

Creating a Reporting Window

SELECT *
FROM orders
WHERE order_date >= DATEADD(day, -30, GETDATE());

Filters orders placed in the last 30 days.

Examples of SQL DATEADD

Example 1: Adding Days to a Date

SELECT DATEADD(day, 10, '2023-06-01') AS future_date;
-- Output: 2023-06-11

A straightforward use of dateadd function in sql to move 10 days ahead.

Example 2: Subtracting Time

SELECT DATEADD(day, -15, GETDATE()) AS fifteen_days_ago;

Use a negative number to go back in time.

Example 3: SQL DATEADD with Other Units

SELECT
  DATEADD(year, 1, hire_date) AS one_year_later,
  DATEADD(month, 6, hire_date) AS half_year_later,
  DATEADD(week, 2, hire_date) AS in_two_weeks
FROM employees;

This highlights how flexible sql dateadd function can be with multiple time units.

Learn More About DATEADD SQL

Common Datepart Values

In dateadd sql server, these datepart values are supported:

  • year, yy, yyyy
  • quarter, qq, q
  • month, mm, m
  • day, dd, d
  • week, wk, ww
  • hour, hh
  • minute, mi, n
  • second, ss, s
  • millisecond, ms

Example:

SELECT DATEADD(minute, 30, '2023-01-01 10:00:00') AS new_time;
-- Output: 2023-01-01 10:30:00

Combining DATEADD with DATEDIFF

You can combine SQL DATEADD with DATEDIFF to round or normalize dates.

Round a date down to the start of the month:

SELECT DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) AS month_start;

This is a popular trick in analytics or calendar-based reporting.

SQL Query DATEADD with GETDATE()

In SQL Server and Transact-SQL systems, GETDATE() returns the current timestamp. You can use it in sql query dateadd to create rolling intervals:

SELECT DATEADD(hour, -12, GETDATE()) AS twelve_hours_ago;

This is useful for building time-sensitive dashboards.

Transact SQL DATEADD in Conditional Logic

Use transact sql dateadd in a CASE statement:

SELECT
  user_id,
  subscription_type,
  DATEADD(day,
    CASE
      WHEN subscription_type = 'trial' THEN 14
      WHEN subscription_type = 'monthly' THEN 30
      WHEN subscription_type = 'annual' THEN 365
    END,
    signup_date
  ) AS expiration_date
FROM users;

This calculates different expiration dates based on subscription plans.

Adjusting Dates for Business Logic

If you need to calculate due dates while skipping weekends or holidays, combine DATEADD with business rules or helper tables.

-- Add 1 day, then skip to Monday if it’s Saturday or Sunday
SELECT
  CASE
    WHEN DATENAME(weekday, DATEADD(day, 1, GETDATE())) IN ('Saturday', 'Sunday')
      THEN DATEADD(day, 3, GETDATE())  -- Adjust to Monday
    ELSE DATEADD(day, 1, GETDATE())
  END AS adjusted_due_date;

This is useful in logistics, HR, and invoicing workflows.

Using DATEADD for Partitioning and Reporting

You can dynamically create time buckets using sql dateadd function:

SELECT
  customer_id,
  COUNT(*) AS orders_last_90_days
FROM orders
WHERE order_date >= DATEADD(day, -90, GETDATE())
GROUP BY customer_id;

This is a standard approach in behavioral analysis and churn prediction.

DATEADD SQL Server Specific Behavior

In dateadd sql server, if your base date is of datetime type, DATEADD retains fractional seconds and time zone context.

SQL Server also supports fractional units:

SELECT DATEADD(second, 1.5, '2023-06-01 12:00:00') AS precise_time;
-- Output: 2023-06-01 12:00:01.500

You can use this for more granular log or event tracking.

Avoiding Common Pitfalls

  1. Overflow Errors: Adding large values like 10000 years can cause overflow.
  2. Mismatched Types: If the date input isn't properly typed, you may need to use CAST():

SELECT DATEADD(day, 7, CAST('2023-06-01' AS DATE));
  1. Invalid Datepart Strings: Misspelled or unsupported datepart values will trigger errors. Always check the docs.

Using DATEADD in Views and CTEs

DATEADD SQL can also be used in common table expressions (CTEs) and views:

WITH recent_activity AS (
  SELECT user_id, last_login
  FROM users
  WHERE last_login >= DATEADD(day, -30, GETDATE())
)
SELECT * FROM recent_activity;

This keeps logic reusable across reporting and application layers.


The SQL DATEADD function is a powerful and flexible tool for managing time in your databases. Whether you're forecasting deadlines, filtering recent activity, or calculating future schedules, DATEADD SQL provides clean, efficient solutions. By combining it with functions like GETDATE(), DATEDIFF, and CASE, you can build robust temporal logic into your reports, business rules, and applications. Once you’ve mastered dateadd sql server usage patterns and edge cases, you’ll be able to confidently handle even the most complex time-based calculations in your SQL workflows.

Learn SQL for Free
Start learning now
button icon
To advance beyond this tutorial and learn SQL by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster