MariaDB provides several ways to perform arithmetic on dates. This includes adding or subtracting a year (or many years) from a given date.
Here’s an example of subtracting a year from a date in MariaDB.
The DATE_SUB() Function
The DATE_SUB() function allows you to subtract a certain number of units from a date. Therefore you can return the date, minus a number of days, weeks, months, years, etc.
In our case, we want to subtract a year.
Example:
SELECT DATE_SUB('2021-05-01', INTERVAL 1 YEAR);
Result:
+-----------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 1 YEAR) |
+-----------------------------------------+
| 2020-05-01 |
+-----------------------------------------+
Multiple Years
If you need to subtract more than one year, just use that number instead of 1. However, the YEAR keyword remains non-plural regardless:
SELECT DATE_SUB('2021-05-01', INTERVAL 2 YEAR);
Result:
+-----------------------------------------+
| DATE_SUB('2021-05-01', INTERVAL 2 YEAR) |
+-----------------------------------------+
| 2019-05-01 |
+-----------------------------------------+
The Subtraction Operator (-)
Another way to subtract a year from a date is to use the subtraction operator (-), also known as the minus operator.
Example:
SELECT '2021-05-01' - INTERVAL 1 YEAR;
Result:
+--------------------------------+ | '2021-05-01' - INTERVAL 1 YEAR | +--------------------------------+ | 2020-05-01 | +--------------------------------+
The Addition Operator (+)
You can alternatively use the addition operator (+) along with a negative amount.
Example:
SELECT '2021-05-01' + INTERVAL -1 YEAR;
Result:
+---------------------------------+ | '2021-05-01' + INTERVAL -1 YEAR | +---------------------------------+ | 2020-05-01 | +---------------------------------+
Other Ways to Subtract Years from Dates
Here are some other approaches you could use to subtract one or more years from a date:
- The
SUBDATE()function (this is a synonym forDATE_SUB()when used with the same syntax). - The
DATE_ADD()function (providing a negative amount will subtract that amount from the date). - The
ADDDATE()function (providing a negative amount will subtract that amount from the date).