sql >> Databasteknik >  >> RDS >> MariaDB

Hur ADD_MONTHS() fungerar i MariaDB

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

  1. Skala PostgreSQL för stora mängder data

  2. Ersätter NULL med 0 i en SQL-serverfråga

  3. Oracle SqlPlus - sparar utdata i en fil men visas inte på skärmen

  4. Hur man ändrar databaslösenordet