Mysql
 sql >> Base de données >  >> RDS >> Mysql

DATE_SUB() Exemples – MySQL

Dans MySQL, vous pouvez utiliser le DATE_SUB() fonction pour soustraire un laps de temps spécifié à partir d'une date. Par exemple, vous pouvez l'utiliser pour soustraire 7 jours à une date donnée. Vous pouvez spécifier s'il faut soustraire des jours, des semaines, des mois, des trimestres, des années, etc. Vous pouvez également soustraire une valeur temporelle, telle que des secondes, des microsecondes, etc.

Cette fonction est similaire à DATE_ADD() , sauf qu'il soustrait d'une date au lieu d'y ajouter.

Syntaxe

La syntaxe ressemble à ceci :

DATE_SUB(date,INTERVAL expr unit)

Exemple 1 - Utilisation de base

Voici un exemple d'utilisation.

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Résultat :

+------------+
| Result     |
+------------+
| 2021-05-02 |
+------------+

Cet exemple soustrait 5 jours à la date fournie par le premier argument.

Exemple 2 – Autres unités de date

Vous pouvez spécifier les unités en jours, semaines, mois, années, etc. Voici quelques exemples.

SELECT 
    '2021-05-07' AS 'Start Date',
    DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks',
    DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months',
    DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters',
    DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';

Résultat :

+------------+------------+------------+-------------+------------+
| Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
+------------+------------+------------+-------------+------------+
| 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07  | 2019-05-07 |
+------------+------------+------------+-------------+------------+

Exemple 3 - Unités de temps

Vous pouvez également soustraire des unités de temps d'une valeur de date/heure. Voici un exemple.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

Résultat :

+---------------------+
| Result              |
+---------------------+
| 2021-05-07 05:00:00 |
+---------------------+

Et vous pouvez spécifier plusieurs unités en même temps. Par exemple, vous pouvez spécifier des heures et des minutes. Comme ça.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;

Résultat :

+---------------------+
| Result              |
+---------------------+
| 2021-05-07 08:30:00 |
+---------------------+

Valeurs attendues

Le tableau suivant indique les valeurs unitaires valides et leur format attendu.

unit Valeur expr attendu Format
MICROSECOND MICROSECONDES
DEUXIÈME SECONDES
MINUTE MINUTES
HEURE HEURES
JOUR JOURS
SEMAINE SEMAINES
MOIS MOIS
TRIMESTRE QUARTS
ANNÉE ANNÉES
SECOND_MICROSECOND ‘SECONDS.MICROSECONDES’
MINUTE_MICROSECOND ‘MINUTES :SECONDES.MICROSECONDES’
MINUTE_SECOND ‘MINUTES :SECONDES’
HOUR_MICROSECOND ‘HEURES:MINUTES:SECONDES.MICROSECONDES’
HOUR_SECOND ‘HEURES:MINUTES:SECONDES’
HOUR_MINUTE ‘HEURES :MINUTES’
DAY_MICROSECOND ‘JOURS HEURES:MINUTES:SECONDES.MICROSECONDES’
DAY_SECOND ‘JOURS HEURES:MINUTES:SECONDES’
DAY_MINUTE 'JOURS HEURES :MINUTES'
DAY_HOUR 'JOURS HEURES'
YEAR_MONTH ‘ANNÉES-MOIS’

Vous pouvez également utiliser le SUBDATE() fonction pour faire la même chose (c'est un synonyme de DATE_SUB() fonction lors de l'utilisation de la même syntaxe).

De plus, la syntaxe de SUBDATE() a une deuxième forme, qui est une méthode abrégée de soustraction d'un certain nombre de jours à partir d'une date. Pour plus d'informations, consultez SUBDATE() Exemples dans MySQL.