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

Jak LAST_DAY() funguje v MariaDB

V MariaDB, LAST_DAY() je vestavěná funkce data a času, která vrací poslední den v měsíci pro dané datum.

Přijímá jeden argument, což je datum, pro které chcete najít poslední den v měsíci.

Syntaxe

Syntaxe vypadá takto:

LAST_DAY(date)

Kde date je výraz data, pro který chcete najít poslední den v měsíci.

Příklad

Zde je příklad:

SELECT LAST_DAY('2030-02-01');

Výsledek:

+------------------------+
| LAST_DAY('2030-02-01') |
+------------------------+
| 2030-02-28             |
+------------------------+

V tomto případě používáme datum v únoru. Jak se ukázalo, únor má v tom roce 28 dní.

Zde je to, co se stane, když zvýšíme datum na další přestupný rok:

SELECT LAST_DAY('2032-02-01');

Výsledek:

+------------------------+
| LAST_DAY('2032-02-01') |
+------------------------+
| 2032-02-29             |
+------------------------+

Hodnoty data a času

Funguje také s hodnotami datetime:

SELECT LAST_DAY('2030-02-01 10:30:45');

Výsledek:

+---------------------------------+
| LAST_DAY('2030-02-01 10:30:45') |
+---------------------------------+
| 2030-02-28                      |
+---------------------------------+

Nula dat

Výsledkem nulových dat je null .

Příklad:

SELECT LAST_DAY('0000-00-00');

Výsledek:

+------------------------+
| LAST_DAY('0000-00-00') |
+------------------------+
| NULL                   |
+------------------------+

Číselná data

Je také možné předávat data jako číslo, pokud to dává smysl jako datum.

Příklad

SELECT LAST_DAY(20301125);

Výsledek:

+--------------------+
| LAST_DAY(20301125) |
+--------------------+
| 2030-11-30         |
+--------------------+

Nebo dokonce následující (který používá dvouciferný rok):

SELECT LAST_DAY(301125);

Výsledek:

+------------------+
| LAST_DAY(301125) |
+------------------+
| 2030-11-30       |
+------------------+

Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:

SELECT LAST_DAY(20301135);

Výsledek:

+--------------------+
| LAST_DAY(20301135) |
+--------------------+
| NULL               |
+--------------------+
1 row in set, 1 warning (0.000 sec)

Varování můžeme zkontrolovat takto:

SHOW WARNINGS;

Výsledek:

+---------+------+--------------------------------------+
| Level   | Code | Message                              |
+---------+------+--------------------------------------+
| Warning | 1292 | Incorrect datetime value: '20301135' |
+---------+------+--------------------------------------+

Další oddělovače

Pro datum můžete použít jiné oddělovače. MariaDB je docela shovívavá, pokud jde o oddělovače dat. Zde je několik platných příkladů:

SELECT 
    LAST_DAY('2030/06/25'),
    LAST_DAY('2030,06,25'),
    LAST_DAY('2030:06:25'),
    LAST_DAY('2030;06!25');

Výsledek (při použití vertikálního výstupu):

LAST_DAY('2030/06/25'): 2030-06-30
LAST_DAY('2030,06,25'): 2030-06-30
LAST_DAY('2030:06:25'): 2030-06-30
LAST_DAY('2030;06!25'): 2030-06-30

Aktuální datum

Můžeme předat NOW() jako argument datetime pro použití aktuálního data:

SELECT 
    NOW(),
    LAST_DAY(NOW());

Výsledek:

+---------------------+-----------------+
| NOW()               | LAST_DAY(NOW()) |
+---------------------+-----------------+
| 2021-05-18 09:39:01 | 2021-05-31      |
+---------------------+-----------------+

Neplatné argumenty

Při předání neplatného argumentu LAST_DAY() vrátí null :

SELECT LAST_DAY('2030-65-78');

Výsledek:

+------------------------+
| LAST_DAY('2030-65-78') |
+------------------------+
| NULL                   |
+------------------------+
1 row in set, 1 warning (0.000 sec)

Zkontrolujte varování:

SHOW WARNINGS;

Výsledek:

+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2030-65-78' |
+---------+------+----------------------------------------+

Chybí argument

Volání LAST_DAY() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT LAST_DAY();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'

A další příklad:

SELECT LAST_DAY('2030-12-10', '2031-12-10');

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LAST_DAY'

  1. Jak nakonfigurovat AppArmor pro PostgreSQL a TimescaleDB

  2. Foreach or For – to je otázka

  3. Vytvořte objekt DIE na serveru SQL Server

  4. Jak získat počet dní v měsíci v MySQL