MySQL DATE_SUB() Function
-- Learning is not just about technology, but also about dreams!
- Home
- HTML
- JavaScript
- CSS
- Vue
- React
- Python3
- Java
- C
- C++
- C#
- AI
- Go
- SQL
- Linux
- VS Code
- Bootstrap
- Git
- Local Bookmarks
SQL Tutorial
- SQL Tutorial
- SQL Introduction
- SQL Syntax
- SQL SELECT
- SQL SELECT DISTINCT
- SQL WHERE
- SQL AND & OR
- SQL ORDER BY
- SQL INSERT INTO
- SQL UPDATE
- SQL DELETE
SQL Advanced Tutorial
- SQL SELECT TOP
- SQL LIKE
- SQL Wildcards
- SQL IN
- SQL BETWEEN
- SQL Aliases
- SQL Joins
- SQL INNER JOIN
- SQL LEFT JOIN
- SQL RIGHT JOIN
- SQL FULL JOIN
- SQL UNION
- SQL SELECT INTO
- SQL INSERT INTO SELECT
- SQL CREATE DATABASE
- SQL CREATE TABLE
- SQL Constraints
- SQL NOT NULL
- SQL UNIQUE
- SQL PRIMARY KEY
- SQL FOREIGN KEY
- SQL CHECK
- SQL DEFAULT
- SQL CREATE INDEX
- SQL DROP
- SQL ALTER
- SQL Auto Increment
- SQL Views
- SQL Dates
- SQL NULL Values
- SQL NULL Functions
- SQL General Data Types
- SQL DB Data Types
SQL Functions
MySQL DATE_SUB() Function
The DATE_SUB() function subtracts a specified time interval from a date.
Syntax
DATE_SUB(date,INTERVAL expr type)
Parameters
| Parameter | Description |
|---|---|
| date | The date. |
| expr | The expression. |
| type | The time interval type. |
Possible Time Interval Types
| Type | Description |
|---|---|
| MICROSECOND | Microseconds |
| SECOND | Seconds |
| MINUTE | Minutes |
| HOUR | Hours |
| DAY | Days |
| WEEK | Weeks |
| MONTH | Months |
| QUARTER | Quarters |
| YEAR | Years |
| SECOND_MICROSECOND | Seconds and microseconds |
| MINUTE_MICROSECOND | Minutes and microseconds |
| MINUTE_SECOND | Minutes and seconds |
| HOUR_MICROSECOND | Hours and microseconds |
| HOUR_SECOND | Hours and seconds |
| HOUR_MINUTE | Hours and minutes |
| DAY_MICROSECOND | Days and microseconds |
| DAY_SECOND | Days and seconds |
| DAY_MINUTE | Days and minutes |
| DAY_HOUR | Days and hours |
| YEAR_MONTH | Years and months |
Example
We have the following table below:
OrderId ProductName OrderDate 1 Computer 2008-12-29
Now, we want to subtract 5 days from OrderDate.
SQL:
SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate FROM Orders
The result will be:
OrderId SubtractDate 1 2008-12-24
Example with Multiple Intervals
Subtract 1 year, 2 months, and 3 days from the date:
SELECT DATE_SUB('2008-12-29', INTERVAL '1-2-3' YEAR_MONTH_DAY) AS NewDate;
Note: MySQL does not support the YEAR_MONTH_DAY combined type directly; use separate operations or the DATE_ADD() function with negative intervals. For completeness, the example above is illustrative. Use INTERVAL 1 YEAR + INTERVAL 2 MONTH + INTERVAL 3 DAY instead.
YouTip