Skip to content
SQLSimplified
date

DATE_ADD()

Adds an interval to a date or timestamp.

Description

DATE_ADD shifts a date or timestamp forward by a given interval, add a day, a month, a year, and so on. It's the safe, calendar-aware way to move dates around (handling month lengths and leap years) instead of adding raw numbers.

Syntax

DATE_ADD(date, INTERVAL '1 month')
DATE_ADD(date, INTERVAL '7 days')

Parameters

NameDescriptionOptional
dateThe starting date/timestamp.No
intervalThe interval to add (e.g. INTERVAL '1 year').No

Return Type

Returns the same type as the input (DATE stays DATE, TIMESTAMP stays TIMESTAMP).

Examples

Loading playground environment...
Loading playground environment...

DATE_ADD vs subtraction

To subtract, use DATE_SUB or a negative interval: DATE_ADD(date, INTERVAL '-1 month').

Common Mistakes

  • Adding raw numbers. hire_date + 30 is not the same as + INTERVAL '30 days'; use intervals for correct calendar math.
  • Leap years. Intervals handle Feb 29 correctly; raw arithmetic doesn't.
  • Type mismatch. Mixing a DATE with a timestamp interval can change the result type.

See also: DATE_SUB, DATEDIFF, DATE_TRUNC.

Cite this resource

SQLSimplified. "DATE_ADD() SQL Function". Available at: https://sqlsimplified.online/reference/date-add