Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ADDDATE() vs. DATE_ADD() in MySQL:Was ist der Unterschied?

Bei Verwendung von MySQL haben wir die Möglichkeit, das ADDDATE() zu verwenden und DATE_ADD() funktioniert immer dann, wenn wir einem bestimmten Datum ein bestimmtes Zeitintervall hinzufügen möchten. Diese beiden Funktionen machen dasselbe, aber es gibt einen Unterschied zwischen ihnen.

Dieser Artikel zeigt den Unterschied zwischen ADDDATE() und DATE_ADD() in MySQL.

Syntax

Der Unterschied zwischen diesen beiden Funktionen liegt in ihrer Syntax. Eine Funktion erlaubt zwei verschiedene Formulare, während die andere nur ein Formular zulässt.

DATE_ADD()

Das DATE_ADD() Syntax geht so.

DATE_ADD(date,INTERVAL expr unit)

Dies akzeptiert einen Datumswert, gefolgt von INTERVAL Schlüsselwort und der Ausdruck und die Einheit, für die das vom ersten Argument gelieferte Datum hinzugefügt werden soll.

ADDDATE()

Das ADDDATE() Die Syntax lässt zwei Formen zu. Sie können eines der folgenden Formulare verwenden.

ADDDATE(date,INTERVAL expr unit)

Oder

ADDDATE(expr,days)

Die erste Form ist genau die gleiche wie DATE_ADD() Syntax. Tatsächlich wird bei Verwendung dieser Syntax das ADDDATE() Funktion ist ein Synonym für DATE_ADD() .

Es ist jedoch die zweite Form der Syntax, die die beiden Funktionen voneinander unterscheidet. Dieses zweite Formular ist nur verfügbar, wenn Sie ADDDATE() verwenden Funktion, und es ermöglicht Ihnen, eine Kurzform zu verwenden, um die Anzahl der Tage anzugeben, die dem Datum hinzugefügt werden sollen.

Beispiel

Hier ist ein Beispiel, um den Unterschied zwischen den beiden Formen zu demonstrieren.

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';

Ergebnis:

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

Aber wenn wir versuchen, das zweite Formular am ADD_DATE() zu verwenden , erhalten wir einen Fehler:

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

Ergebnis:

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

Dies liegt daran, dass diese Funktion diese Syntax nicht unterstützt.