sql >> Database >  >> RDS >> MariaDB

Hoe ADD_MONTHS() werkt in MariaDB

In MariaDB, ADD_MONTHS() is een ingebouwde datum- en tijdfunctie die een bepaald aantal maanden aan een datum toevoegt en het resultaat retourneert.

De datum kan een datum-, datetime- of tijdstempelwaarde zijn.

Deze functie is geïntroduceerd in MariaDB 10.6.1 om de compatibiliteit met Oracle te verbeteren. Er zijn minstens 6 andere manieren om maanden toe te voegen aan een datum in MariaDB.

Syntaxis

De syntaxis gaat als volgt:

ADD_MONTHS(date, months)

Waar date is de datum, en months is het aantal maanden dat eraan moet worden toegevoegd.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

Maanden aftrekken

Gebruik een negatieve waarde voor het tweede argument om maanden van een datum af te trekken.

Voorbeeld:

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

Resultaat:

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

Numerieke context

De datum kan indien nodig in numerieke vorm worden opgegeven:

SELECT ADD_MONTHS(20200101, 3);

Resultaat:

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

Ongeldige datums

Als de datum ongeldig is, ADD_MONTHS() retourneert null met een waarschuwing:

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

Resultaat:

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

Laten we de waarschuwing eens bekijken:

SHOW WARNINGS;

Resultaat:

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

Nullargumenten

ADD_MONTHS() retourneert null als een argument null is :

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

Resultaat:

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

Ongeldig aantal argumenten

Het doorgeven van een ongeldig aantal argumenten resulteert in een fout:

SELECT ADD_MONTHS(3);

Resultaat:

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

  1. SQL afkappen

  2. Een logging-handler maken om verbinding te maken met Oracle?

  3. 2 manieren om rijen te selecteren die overeenkomen met alle items in een lijst (T-SQL)

  4. Hoe DATE_ADD() werkt in MariaDB