MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie ADD_MONTHS() in MariaDB funktioniert

In MariaDB ADD_MONTHS() ist eine integrierte Datums- und Uhrzeitfunktion, die einem Datum eine bestimmte Anzahl von Monaten hinzufügt und das Ergebnis zurückgibt.

Das Datum kann ein Datums-, Datumszeit- oder Zeitstempelwert sein.

Diese Funktion wurde in MariaDB 10.6.1 eingeführt, um die Oracle-Kompatibilität zu verbessern. Es gibt mindestens 6 weitere Möglichkeiten, Monate zu einem Datum in MariaDB hinzuzufügen.

Syntax

Die Syntax lautet wie folgt:

ADD_MONTHS(date, months)

Wobei date ist das Datum und months ist die Anzahl der Monate, die hinzugefügt werden sollen.

Beispiel

Hier ist ein Beispiel:

SELECT ADD_MONTHS('2020-01-01', 3);

Ergebnis:

+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01                  |
+-----------------------------+

Subtrahieren Sie Monate

Um Monate von einem Datum abzuziehen, verwenden Sie einen negativen Wert für das zweite Argument.

Beispiel:

SELECT ADD_MONTHS('2020-01-01', -3);

Ergebnis:

+------------------------------+
| ADD_MONTHS('2020-01-01', -3) |
+------------------------------+
| 2019-10-01                   |
+------------------------------+

Numerischer Kontext

Das Datum kann bei Bedarf in numerischer Form angegeben werden:

SELECT ADD_MONTHS(20200101, 3);

Ergebnis:

+-------------------------+
| ADD_MONTHS(20200101, 3) |
+-------------------------+
| 2020-04-01              |
+-------------------------+

Ungültige Daten

Wenn das Datum ungültig ist, ADD_MONTHS() gibt null zurück mit einer Warnung:

SELECT ADD_MONTHS('2020-01-51', 3);

Ergebnis:

+-----------------------------+
| ADD_MONTHS('2020-01-51', 3) |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set, 1 warning (0.003 sec)

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2020-01-51' |
+---------+------+----------------------------------------+

Null-Argumente

ADD_MONTHS() gibt null zurück wenn irgendein Argument null ist :

SELECT ADD_MONTHS('2020-01-01', null);

Ergebnis:

+--------------------------------+
| ADD_MONTHS('2020-01-01', null) |
+--------------------------------+
| NULL                           |
+--------------------------------+

Ungültige Anzahl von Argumenten

Das Übergeben einer ungültigen Anzahl von Argumenten führt zu einem Fehler:

SELECT ADD_MONTHS(3);

Ergebnis:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1