MariaDB bietet mehrere Möglichkeiten, Datumsangaben zu berechnen. Dazu gehört das Addieren oder Subtrahieren eines Monats (oder mehrerer Monate) von einem bestimmten Datum.
Hier sind 6 Möglichkeiten, einem Datum in MariaDB einen Monat hinzuzufügen.
Bonus-Update :Ich habe jetzt am Ende dieses Artikels eine siebte Möglichkeit hinzugefügt, einem Datum einen Monat hinzuzufügen. Ich denke, es gibt jetzt 7 Möglichkeiten, einem Datum in MariaDB einen Monat hinzuzufügen 🙂
Der DATE_ADD()
Funktion
Das DATE_ADD()
Mit dieser Funktion können Sie einem Datum einen Betrag hinzufügen. Beispielsweise können Sie eine Anzahl von Tagen, Wochen, Monaten, Jahren usw. hinzufügen.
Beispiel:
SELECT DATE_ADD('2021-05-01', INTERVAL 1 MONTH);
Ergebnis:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Wenn Sie mehr als einen Monat hinzufügen müssen, verwenden Sie einfach diese Zahl anstelle von 1
. Der MONTH
jedoch Schlüsselwort bleibt unabhängig davon Nicht-Plural:
SELECT DATE_ADD('2021-05-01', INTERVAL 2 MONTH);
Ergebnis:
+------------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 2 MONTH) | +------------------------------------------+ | 2021-07-01 | +------------------------------------------+
Es ist auch möglich, eine andere Datums-/Zeiteinheit mit der entsprechenden Nummer dieser Einheit zu verwenden. Daher können Sie eine bestimmte Anzahl von Tagen angeben, z. B. 30 oder 31.
Beispiel:
SELECT DATE_ADD('2021-05-01', INTERVAL 31 DAY);
Ergebnis:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 31 DAY) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
Ob es sich bei der Verwendung von Tagen um genau einen Monat handelt oder nicht, hängt vom jeweiligen Monat ab. Im obigen Beispiel hätte ich 30 Tage angeben können, aber das hätte uns innerhalb desselben Monats gehalten:
SELECT DATE_ADD('2021-05-01', INTERVAL 30 DAY);
Ergebnis:
+-----------------------------------------+ | DATE_ADD('2021-05-01', INTERVAL 30 DAY) | +-----------------------------------------+ | 2021-05-31 | +-----------------------------------------+
Wenn Sie also tatsächlich einen Monat hinzufügen möchten, dann den MONTH
Einheit ist viel einfacher, als herauszufinden, wie viele Tage hinzugefügt werden müssen.
Das ADDDATE()
Funktion
Eine andere Möglichkeit, einem Datum einen Monat hinzuzufügen, ist die Verwendung von ADDDATE()
Funktion. Diese Funktion hat zwei Syntaxen. Mit einer Syntax können Sie einem Datum eine Anzahl von Tagen hinzufügen. Die übrige Syntax ist die gleiche wie bei DATE_ADD()
Funktion oben. Bei Verwendung dieser Syntax ADDDATE()
ist ein Synonym für DATE_ADD()
.
Beispiel:
SELECT ADDDATE('2021-05-01', INTERVAL 1 MONTH);
Ergebnis:
+-----------------------------------------+ | ADDDATE('2021-05-01', INTERVAL 1 MONTH) | +-----------------------------------------+ | 2021-06-01 | +-----------------------------------------+
Der DATE_SUB()
Funktion
Das DATE_SUB()
Funktion können Sie subtrahieren ein Betrag zu einem Datum. Wenn Sie jedoch einen negativen Wert zum Subtrahieren angeben, wird dieser letztendlich hinzugefügt zum Datum.
Beispiel:
SELECT DATE_SUB('2021-05-01', INTERVAL -1 MONTH);
Ergebnis:
+-------------------------------------------+ | DATE_SUB('2021-05-01', INTERVAL -1 MONTH) | +-------------------------------------------+ | 2021-06-01 | +-------------------------------------------+
Das SUBDATE()
Funktion
Das SUBDATE()
Funktion ist ein Synonym für DATE_SUB()
bei Verwendung der folgenden Syntax.
Beispiel:
SELECT SUBDATE('2021-05-01', INTERVAL -1 MONTH);
Ergebnis:
+------------------------------------------+ | SUBDATE('2021-05-01', INTERVAL -1 MONTH) | +------------------------------------------+ | 2021-06-01 | +------------------------------------------+
Der +
Betreiber
Eine andere Möglichkeit ist die Verwendung von +
Operator.
Das +
Der Operator wird verwendet, um eine Addition durchzuführen, und wir können ihn zusammen mit der entsprechenden Datums-/Zeiteinheit für Datumsangaben verwenden, um eine bestimmte Anzahl von Monaten zu unserem Datum hinzuzufügen.
Beispiel:
SELECT '2021-05-01' + INTERVAL 1 MONTH;
Ergebnis:
+---------------------------------+ | '2021-05-01' + INTERVAL 1 MONTH | +---------------------------------+ | 2021-06-01 | +---------------------------------+
Der -
Betreiber
Der -
Operator kann verwendet werden, um einen Betrag von einem Datum abzuziehen. Aber wenn es verwendet wird, um eine negative Zahl zu subtrahieren, dann ist das Ergebnis ein positiver Betrag, der zum Datum hinzugefügt wird:
SELECT '2021-05-01' - INTERVAL -1 MONTH;
Ergebnis:
+----------------------------------+ | '2021-05-01' - INTERVAL -1 MONTH | +----------------------------------+ | 2021-06-01 | +----------------------------------+
Bonus:Der ADD_MONTHS()
Funktion
Seit ich diesen Artikel zum ersten Mal geschrieben habe, wurde in MariaDB eine neue Funktion speziell zum Hinzufügen von Monaten zu einem Datum eingeführt.
Die Funktion heißt ADD_MONTHS()
, und es wurde in MariaDB 10.6.1 eingeführt, um die Oracle-Kompatibilität zu verbessern.
Ich schätze also, dieser Artikel sollte 7 Möglichkeiten, einem Datum einen Monat hinzuzufügen… heißen 🙂
Beispiel:
SELECT ADD_MONTHS('2020-01-01', 3);
Ergebnis:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Andere Datums- und Zeiteinheiten
Die obigen Beispiele fügen dem Datum eine Anzahl von Monaten hinzu, aber wir können die gleichen Techniken verwenden, um jede Datums-/Zeiteinheit hinzuzufügen. Eine vollständige Liste der Datums-/Zeiteinheiten, die mit den oben genannten Funktionen und Operatoren verwendet werden können, finden Sie unter MariaDB-Datums- und Zeiteinheiten.