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

Jak MONTH() funguje v MariaDB

V MariaDB, MONTH() je vestavěná funkce data a času, která vrací měsíc z daného výrazu data.

Přijímá jeden argument, což je datum, ze kterého chcete extrahovat měsíc.

Vrátí měsíc jako číslo v rozsahu 1 do 12 za leden až prosinec. Pokud má datum část nula měsíce (např. 0000-00-00 nebo 2025-00-00 ), výsledkem je 0 .

Syntaxe

Syntaxe vypadá takto:

MONTH(date) 

Kde date je výraz data, ze kterého se má získat měsíc.

Příklad

Zde je příklad:

SELECT MONTH('2030-08-01'); 

Výsledek:

+---------------------+| MĚSÍC('2030-08-01') |+---------------------+| 8 |+---------------------+

Hodnoty data a času

Funguje také s hodnotami datetime:

SELECT MONTH('2030-08-01 10:30:45'); 

Výsledek:

+------------------------------+| MĚSÍC('2030-08-01 10:30:45') |+------------------------------+| 8 |+------------------------------+

Nula měsíců

Výsledkem nula měsíců je 0 .

Příklad:

SELECT MONTH('2030-00-00'); 

Výsledek:

+---------------------+| MĚSÍC('2030-00-00') |+---------------------+| 0 |+---------------------+

Číselná data

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

Příklad

SELECT MONTH(20301125); 

Výsledek:

+------------------+| MĚSÍC(20301125) |+-----------------+| 11 |+-----------------+

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

SELECT MONTH(301125); 

Výsledek:

+----------------+| MĚSÍC(301125) |+---------------+| 11 |+---------------+

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

SELECT MONTH(20301135); 

Výsledek:

+------------------+| MĚSÍC(20301135) |+-----------------+| NULL |+-----------------+

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 
    MONTH('2030/06/25'),
    MONTH('2030,06,25'),
    MONTH('2030:06:25'),
    MONTH('2030;06!25'); 

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

MONTH('2030/06/25'):6MONTH('2030,06,25'):6MONTH('2030:06:25'):6MONTH('2030;06!25'):6 

Aktuální datum

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

SELECT 
    NOW(),
    MONTH(NOW()); 

Výsledek:

+---------------------+--------------+| NYNÍ() | MĚSÍC(NYNÍ()) |+---------------------+--------------+| 2021-05-16 15:00:06 | 5 |+---------------------+--------------+

Neplatné argumenty

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

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

Výsledek:

+---------------------+| MĚSÍC('2030-65-78') |+---------------------+| NULL |+---------------------+

Chybí argument

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

SELECT MONTH(); 

Výsledek:

ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do manuálu, který odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi blízko ')' na řádku 1

A další příklad:

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

Výsledek:

ERROR 1064 (42000):Máte chybu v syntaxi SQL; zkontrolujte příručku, která odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ''2031-12-10')' na řádku 1

  1. Úvahy DevOps pro nasazení databáze připravené na produkci

  2. Příkaz GROUP BY + CASE

  3. MariaDB JSON_TABLE() Vysvětleno

  4. Vytvoření postgresql DB pomocí psycopg2