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

Jak MONTHNAME() funguje v MariaDB

V MariaDB, MONTHNAME() je vestavěná funkce data a času, která vrací název měsíce pro dané datum.

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

Syntaxe

Syntaxe vypadá takto:

MONTHNAME(date) 

Kde date je datum, ze kterého se má získat název měsíce.

Příklad

Zde je příklad:

SELECT MONTHNAME('2041-11-14'); 

Výsledek:

+-------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| Listopad |+-------------------------+

Jazyk

Jazyk použitý pro název měsíce je řízen hodnotou lc_time_names systémová proměnná.

Zde je příklad, který ukazuje, jak to ovlivní výsledek:

SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14'); 

Výsledek:

+-------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| noviembre |+-------------------------+

A přepnutí zpět na en_US , což je výchozí:

SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14'); 

Výsledek:

+-------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| Listopad |+-------------------------+

Zde je seznam lokalit podporovaných MariaDB a zde je návod, jak vrátit svůj vlastní seznam dostupných lokalit.

A zde je příspěvek vysvětlující, jak zkontrolovat hodnotu vašich lc_time_names systémová proměnná.

Hodnoty data a času

Funguje také s hodnotami datetime:

SELECT MONTHNAME('2041-01-15 10:30:45'); 

Výsledek:

+----------------------------------+| MONTHNAME('2041-01-15 10:30:45') |+---------------------------------- -+| leden |+----------------------------------+

Nula měsíců

Pokud je v datu uveden nulový měsíc, vrátí se null :

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

Výsledek:

+-------------------------+| MONTHNAME('2030-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 MONTHNAME(20201208); 

Výsledek:

+---------------------+| MONTHNAME(20201208) |+---------------------+| prosinec |+---------------------+

Dvouciferné roky jsou v pořádku:

SELECT MONTHNAME(201208); 

Výsledek:

+-------------------+| MONTHNAME(201208) |+-------------------+| prosinec |+-------------------+

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

SELECT MONTHNAME(201299); 

Výsledek:

+-------------------+| MONTHNAME(201299) |+-------------------+| 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 
    MONTHNAME('2027/08/19'),
    MONTHNAME('2027,08,19'),
    MONTHNAME('2027:08:19'),
    MONTHNAME('2027;08!19'); 

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

MONTHNAME('2027/08/19'):AugustMONTHNAME('2027,08,19'):AugustMONTHNAME('2027:08:19'):AugustMONTHNAME('2027;08!19'):Srpen 

Aktuální datum

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

SELECT 
    NOW(),
    MONTHNAME(NOW()); 

Výsledek:

+---------------------+------------------+| NYNÍ() | NÁZEV MĚSÍCE(NYNÍ()) |+---------------------+------------------+| 2021-05-14 10:11:16 | květen |+---------------------+------------------+

Neplatné argumenty

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

SELECT MONTHNAME('Wrong!'); 

Výsledek:

+---------------------+| MONTHNAME('Špatně!') |+---------------------+| NULL |+---------------------+

Chybí argument

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

SELECT MONTHNAME(); 

Výsledek:

CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'MONTHNAME'

A další příklad:

SELECT MONTHNAME('2030-01-25', '2045-05-08'); 

Výsledek:

CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'MONTHNAME'

  1. AUTONOMOUS_TRANSACTION

  2. Dynamický aktualizační příkaz s proměnnými názvy sloupců

  3. Statistika čekání na koleno:PAGEIOLATCH_SH

  4. Vložení SqlBulkCopy se sloupcem identity