I MariaDB, ADD_MONTHS() er en indbygget dato- og tidsfunktion, der tilføjer et givet antal måneder til en dato og returnerer resultatet.
Datoen kan være en dato-, datetime- eller tidsstempelværdi.
Denne funktion blev introduceret i MariaDB 10.6.1 for at forbedre Oracle-kompatibiliteten. Der er mindst 6 andre måder at tilføje måneder til en dato i MariaDB.
Syntaks
Syntaksen ser sådan ud:
ADD_MONTHS(date, months)
Hvor date er datoen og months er antallet af måneder, der skal tilføjes.
Eksempel
Her er et eksempel:
SELECT ADD_MONTHS('2020-01-01', 3); Resultat:
+-----------------------------+
| ADD_MONTHS('2020-01-01', 3) |
+-----------------------------+
| 2020-04-01 |
+-----------------------------+ Fratræk måneder
For at trække måneder fra en dato skal du bruge en negativ værdi for det andet argument.
Eksempel:
SELECT ADD_MONTHS('2020-01-01', -3); Resultat:
+------------------------------+
| ADD_MONTHS('2020-01-01', -3) |
+------------------------------+
| 2019-10-01 |
+------------------------------+ Numerisk kontekst
Datoen kan angives i numerisk form, hvis det kræves:
SELECT ADD_MONTHS(20200101, 3); Resultat:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Ugyldige datoer
Hvis datoen er ugyldig, ADD_MONTHS() returnerer null med en advarsel:
SELECT ADD_MONTHS('2020-01-51', 3); Resultat:
+-----------------------------+
| ADD_MONTHS('2020-01-51', 3) |
+-----------------------------+
| NULL |
+-----------------------------+
1 row in set, 1 warning (0.003 sec) Lad os tjekke advarslen:
SHOW WARNINGS; Resultat:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Nul-argumenter
ADD_MONTHS() returnerer null hvis et argument er null :
SELECT ADD_MONTHS('2020-01-01', null); Resultat:
+--------------------------------+
| ADD_MONTHS('2020-01-01', null) |
+--------------------------------+
| NULL |
+--------------------------------+ Ugyldigt antal argumenter
Sende et ugyldigt antal argumenter resulterer i en fejl:
SELECT ADD_MONTHS(3); Resultat:
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