In MariaDB ADDDATE()
ist eine integrierte Datums- und Zeitfunktion, die Datumsarithmetik durchführt.
Sie können ein Datum ändern, indem Sie das Datum, die hinzuzufügende Einheit und den hinzuzufügenden Betrag angeben. Sie können einen negativen Betrag übergeben, wenn Sie das Datum um ein bestimmtes Intervall subtrahieren müssen.
ADDDATE()
verfügt auch über eine Abkürzungssyntax, mit der Sie dem Datum eine bestimmte Anzahl von Tagen hinzufügen können.
Syntax
Das ADDDATE()
Funktion hat zwei Syntaxen.
Syntax 1:
ADDDATE(expr,days)
Wobei expr
ist das Datum und days
ist die Anzahl der hinzuzufügenden Tage.
Syntax 2:
ADDDATE(date,INTERVAL expr unit)
Wobei date
ist das zu ändernde Datum, expr
ist der hinzuzufügende Betrag und unit
ist die hinzuzufügende Einheit (z. B. Sekunde, Minute usw.).
Bei Verwendung dieser Syntax ADDDATE()
ist ein Synonym für DATE_ADD()
.
Beispiel – Syntax 1
Hier ist ein Beispiel für die Verwendung der ersten Syntax:
SELECT ADDDATE('2021-05-01', 1);
Ergebnis:
+---------------------+| HINZUFÜGEN('2021-05-01', 1) |+---------------------+| 2021-05-02 |+---------------------+
Bei Bedarf können wir auch den Zeitanteil einbeziehen:
SELECT ADDDATE('2021-05-01 10:00:00', 1);
Ergebnis:
+-----------------------------------+| HINZUFÜGEN('2021-05-01 10:00:00', 1) |+------------------------------- ----+| 2021-05-02 10:00:00 |+-----------------------------------+Hier sind zwei alternative Möglichkeiten, dasselbe zu tun:
SELECT DATE_ADD('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1", '2021-05-01 10:00:00' + INTERVAL 1 DAY AS "Result 2";
Ergebnis:
+---------------------+---------------------+| Ergebnis 1 | Ergebnis 2 |+---------------------+---------------------+| 2021-05-02 10:00:00 | 2021-05-02 10:00:00 |+---------------------+---------------- -----+Beispiel – Syntax 2
Hier ist ein Beispiel für die Verwendung der zweiten Syntax:
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR);
Ergebnis:
+---------------------------------------------- ---+| HINZUFÜGEN('2021-05-31 10:00:00', INTERVALL 1 STUNDE) |+----------------------------------------- --------------------+| 2021-05-31 11:00:00 |+------------------------------------- -----------+
Diese Syntax ermöglicht es uns, dem Datum andere Einheiten hinzuzufügen (d. h. nicht nur die Tage). Hier habe ich dem Datum eine Stunde hinzugefügt, aber ich hätte genauso gut Minuten, Sekunden, Monate, Tage, Jahre usw. hinzufügen können. Lesen Sie weiter für Beispiele.
Hier sind zwei alternative Methoden, um das gleiche Ergebnis wie im obigen Beispiel zu erzielen:
SELECT
DATE_ADD('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1",
'2021-05-31 10:00:00' + INTERVAL 1 HOUR AS "Result 2";
Ergebnis:
+---------------------+---------------------+| Ergebnis 1 | Ergebnis 2 |+---------------------+---------------------+| 2021-05-31 11:00:00 | 2021-05-31 11:00:00 |+---------------------+---------------- -----+
Negative Intervalle
Bei Angabe eines negativen Intervalls wird dieser Betrag vom Datum abgezogen.
Beispiel:
SELECT ADDDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR);
Ergebnis:
Andere Einheiten
Hier ist ein Beispiel, das den verschiedenen Datums- und Zeiteinheiten ein Intervall von 1 hinzufügt:
SELECT
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
ADDDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND;
Ergebnis (bei vertikaler Ausgabe):
JAHR:2022-05-01 10:00:00 MONAT:2021-06-01 10:00:00 TAG:2021-05-02 10:00:00 STUNDE:2021-05-01 11:00:00 MINUTE:2021-05-01 10:01:00 SEKUNDE:2021-05-01 10:00:01 MIKROSEKUNDE:2021-05-01 10:00:00.000001
Zusammengesetzte Einheiten
Hier ist ein Beispiel, das zusammengesetzte Einheiten verwendet:
SELECT
ADDDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
ADDDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
ADDDATE('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE";
Ergebnis:
+---------------------+---------------------+-- -------------------+| JAHR_MONAT | HOUR_SECOND | DAY_MINUTE |+---------------------+---------------------+--- ------------------+| 01.07.2022 10:00:00 | 01.05.2021 11:25:35 | 2021-05-01 11:30:00 |+---------------------+---------------- -----+---------------------+
Nulldaten
Übergabe von null
für das Datum gibt null
zurück :
SELECT ADDDATE(null, INTERVAL 1 YEAR);
Ergebnis:
+-------------------------------+| ADDDATE(Null, INTERVALL 1 JAHR) |+---------------------------------------------+| NULL |+-------------------------------+
Fehlendes Argument
Aufruf von ADDDATE()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT ADDDATE();
Ergebnis:
ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden