I MariaDB, ADD_MONTHS()
är en inbyggd datum- och tidsfunktion som lägger till ett givet antal månader till ett datum och returnerar resultatet.
Datumet kan vara ett datum-, datetime- eller tidsstämpelvärde.
Denna funktion introducerades i MariaDB 10.6.1 för att förbättra Oracle-kompatibiliteten. Det finns minst 6 andra sätt att lägga till månader till ett datum i MariaDB.
Syntax
Syntaxen ser ut så här:
ADD_MONTHS(date, months)
Där date
är datumet och months
är antalet månader som ska läggas till.
Exempel
Här är ett exempel:
SELECT ADD_MONTHS('2020-01-01', 3);
Resultat:
+-----------------------------+ | ADD_MONTHS('2020-01-01', 3) | +-----------------------------+ | 2020-04-01 | +-----------------------------+
Subtrahera månader
För att subtrahera månader från ett datum, använd ett negativt värde för det andra argumentet.
Exempel:
SELECT ADD_MONTHS('2020-01-01', -3);
Resultat:
+------------------------------+ | ADD_MONTHS('2020-01-01', -3) | +------------------------------+ | 2019-10-01 | +------------------------------+
Numerisk kontext
Datumet kan anges i numerisk form vid behov:
SELECT ADD_MONTHS(20200101, 3);
Resultat:
+-------------------------+ | ADD_MONTHS(20200101, 3) | +-------------------------+ | 2020-04-01 | +-------------------------+
Ogiltiga datum
Om datumet är ogiltigt, ADD_MONTHS()
returnerar null
med en varning:
SELECT ADD_MONTHS('2020-01-51', 3);
Resultat:
+-----------------------------+ | ADD_MONTHS('2020-01-51', 3) | +-----------------------------+ | NULL | +-----------------------------+ 1 row in set, 1 warning (0.003 sec)
Låt oss kolla varningen:
SHOW WARNINGS;
Resultat:
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1292 | Incorrect datetime value: '2020-01-51' | +---------+------+----------------------------------------+
Nollargument
ADD_MONTHS()
returnerar null
om något argument är null
:
SELECT ADD_MONTHS('2020-01-01', null);
Resultat:
+--------------------------------+ | ADD_MONTHS('2020-01-01', null) | +--------------------------------+ | NULL | +--------------------------------+
Ogiltigt antal argument
Att skicka ett ogiltigt antal argument resulterar i ett fel:
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