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