sql >> Databáze >  >> RDS >> MariaDB

Jak ADD_MONTHS() funguje v MariaDB

V MariaDB, ADD_MONTHS() je vestavěná funkce data a času, která k datu přidá daný počet měsíců a vrátí výsledek.

Datum může být datum, datum a čas nebo hodnota časového razítka.

Tato funkce byla představena v MariaDB 10.6.1 za účelem zlepšení kompatibility Oracle. Existuje alespoň 6 dalších způsobů, jak přidat měsíce k datu v MariaDB.

Syntaxe

Syntaxe vypadá takto:

ADD_MONTHS(date, months)

Kde date je datum a months je počet měsíců, které se k němu mají přidat.

Příklad

Zde je příklad:

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

Výsledek:

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

Odečíst měsíce

Chcete-li od data odečíst měsíce, použijte pro druhý argument zápornou hodnotu.

Příklad:

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

Výsledek:

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

Číselný kontext

Datum lze v případě potřeby uvést v číselné podobě:

SELECT ADD_MONTHS(20200101, 3);

Výsledek:

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

Neplatná data

Pokud je datum neplatné, ADD_MONTHS() vrátí null s varováním:

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

Výsledek:

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

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

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

Nulové argumenty

ADD_MONTHS() vrátí null pokud je nějaký argument null :

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

Výsledek:

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

Neplatný počet argumentů

Předání neplatného počtu argumentů má za následek chybu:

SELECT ADD_MONTHS(3);

Výsledek:

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. Udržujte pořadí od klauzule „IN“.

  2. Jak používáte proměnné skriptu v psql?

  3. Nějaký dopad na výkon v Oracle při použití LIKE 'string' vs ='string'?

  4. Jak používat RETURNING s ON CONFLICT v PostgreSQL?