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'):čtvrtekAktuá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'