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

Jak DAYNAME() funguje v MariaDB

V MariaDB, DAYNAME() je vestavěná funkce data a času, která vrací název dne v týdnu pro dané datum.

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

Syntaxe

Syntaxe vypadá takto:

DAYNAME(date) 

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

Příklad

Zde je příklad:

SELECT DAYNAME('2045-10-17'); 

Výsledek:

+-----------------------+| DAYNAME('2045-10-17') |+------------------------+| úterý |+-----------------------+

Jazyk

Jazyk použitý pro název dne 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 = 'de_DE';
SELECT DAYNAME('2045-10-17'); 

Výsledek:

+-----------------------+| DAYNAME('2045-10-17') |+------------------------+| Dienstag |+-----------------------+

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

SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17'); 

Výsledek:

+-----------------------+| DAYNAME('2045-10-17') |+------------------------+| úterý |+-----------------------+

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

Když už jsme u toho, 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 DAYNAME('2030-01-25 10:30:45'); 

Výsledek:

+--------------------------------+| DAYNAME('2030-01-25 10:30:45') |+--------------------------------+ | pátek |+--------------------------------+

Nula dnů

Pokud je v datu uveden nulový den, vrátí se null :

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

Výsledek:

+-----------------------+| DAYNAME('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 DAYNAME(20201108); 

Výsledek:

+-------------------+| DAYNAME(20201108) |+-------------------+| neděle |+-------------------+

Dvouciferné roky jsou v pořádku:

SELECT DAYNAME(201108); 

Výsledek:

+------------------+| DAYNAME(201108) |+-----------------+| neděle |+-----------------+

Ale jako rande to musí dávat smysl. Pokud zvýším měsíční část na neplatný měsíc, stane se toto:

SELECT DAYNAME(209908); 

Výsledek:

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

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

DAYNAME('2027/08/19'):čtvrtekDAYNAME('2027,08,19'):čtvrtekDAYNAME('2027:08:19'):čtvrtekDAYNAME('2027;08!19'):čtvrtek 

Aktuální datum

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

SELECT 
    NOW(),
    DAYNAME(NOW()); 

Výsledek:

+---------------------+----------------+| NYNÍ() | NÁZEV DNE(NYNÍ()) |+---------------------+----------------+| 2021-05-13 13:29:10 | čtvrtek |+---------------------+----------------+

Neplatné argumenty

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

SELECT DAYNAME('Dang!'); 

Výsledek:

+-------------------+| DAYNAME('Do prdele!') |+------------------+| NULL |+------------------+

Chybí argument

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

SELECT DAYNAME(); 

Výsledek:

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

A další příklad:

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

Výsledek:

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

  1. MYSQL sum() pro různé řádky

  2. Failover &Failback na Amazon RDS

  3. Jak se rozhodnu, kdy použít pravá spojení/levá spojení nebo vnitřní spojení Nebo jak určit, která tabulka je na které straně?

  4. Přidejte parametr data do dotazu Oracle