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

ADDDATE() vs DATE_ADD() dans MySQL :Quelle est la différence ?

Lors de l'utilisation de MySQL, nous avons la possibilité d'utiliser le ADDDATE() et DATE_ADD() fonctionne chaque fois que nous voulons ajouter un intervalle de temps spécifique à une date donnée. Ces deux fonctions font la même chose, mais il y a une différence entre elles.

Cet article montre la différence entre ADDDATE() et DATE_ADD() dans MySQL.

Syntaxe

La différence entre ces deux fonctions réside dans leur syntaxe. Une fonction permet deux formes différentes, tandis que l'autre ne permet qu'une seule forme.

DATE_ADD()

Le DATE_ADD() la syntaxe ressemble à ceci.

DATE_ADD(date,INTERVAL expr unit)

Ceci accepte une valeur de date, suivie de INTERVAL mot-clé et l'expression et l'unité à ajouter à la date fournie par le premier argument.

AJOUTER DATE()

Le ADDDATE() La syntaxe permet deux formes. Vous pouvez utiliser l'un des formulaires suivants.

ADDDATE(date,INTERVAL expr unit)

Ou

ADDDATE(expr,days)

Le premier formulaire est exactement le même que le DATE_ADD() syntaxe. En fait, lors de l'utilisation de cette syntaxe, le ADDDATE() la fonction est synonyme de DATE_ADD() .

Cependant, c'est la deuxième forme de la syntaxe qui distingue les deux fonctions. Ce deuxième formulaire n'est disponible que lorsque vous utilisez ADDDATE() et vous permet d'utiliser un raccourci pour spécifier le nombre de jours à ajouter à la date.

Exemple

Voici un exemple pour montrer la différence entre les deux formulaires.

SET @date = '2020-10-01';
SELECT 
    DATE_ADD(@date, INTERVAL 2 DAY) AS 'DATE_ADD',
    ADDDATE(@date, INTERVAL 2 DAY) AS 'ADDDATE 1',
    ADDDATE(@date, 2) AS 'ADDDATE 2';

Résultat :

+------------+------------+------------+
| DATE_ADD   | ADDDATE 1  | ADDDATE 2  |
+------------+------------+------------+
| 2020-10-03 | 2020-10-03 | 2020-10-03 |
+------------+------------+------------+

Mais si nous essayons d'utiliser le deuxième formulaire le ADD_DATE() , nous obtenons une erreur :

SET @date = '2020-10-01';
SELECT DATE_ADD(@date, 2) AS 'DATE_ADD 2';

Résultat :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2) AS 'DATE_ADD 2'' at line 1

C'est parce que cette fonction ne prend pas en charge cette syntaxe.