V MariaDB, DAYOFWEEK() je vestavěná funkce data a času, která vrací den v týdnu z daného data.
Přijímá jeden argument, což je datum, ze kterého chcete extrahovat den v týdnu.
Vrací den jako číslo. Číslování indexu se řídí standardem ODBC (1 =neděle, 2 =pondělí atd.). To je v kontrastu s WEEKDAY() , kde 0 =pondělí, 1 =úterý atd.
Syntaxe
Syntaxe vypadá takto:
DAYOFWEEK(date)
Kde date je datum, ze kterého se má získat den.
Příklad
Zde je příklad:
SELECT DAYOFWEEK('2030-01-25'); Výsledek:
+-------------------------+| DAYOFWEEK('2030-01-25') |+-------------------------+| 6 |+-------------------------+ Ve srovnání s názvem dne
Zde je další vedle DAYNAME() vrátíte název dne:
SELECT
DAYOFWEEK('2030-01-20'),
DAYNAME('2030-01-20'); Výsledek:
+-------------------------+-------------------- ---+| DAYOFWEEK('2030-01-20') | DAYNAME('2030-01-20') |+-------------------------+------------ -----------+| 1 | neděle |+-------------------------+---------------------- --+ Jak již bylo zmíněno, číslování indexu začíná na 1 pro neděli.
Tady je sobota:
SELECT
DAYOFWEEK('2030-01-19'),
DAYNAME('2030-01-19'); Výsledek:
+-------------------------+-------------------- ---+| DAYOFWEEK('2030-01-19') | DAYNAME('2030-01-19') |+-------------------------+------------ -----------+| 7 | Sobota |+-------------------------+---------------------- --+ Hodnoty data a času
Funguje také s hodnotami datetime:
SELECT DAYOFWEEK('2030-01-24 10:30:45'); Výsledek:
+----------------------------------+| DAYOFWEEK('2030-01-24 10:30:45') |+--------------------------------- -+| 5 |+----------------------------------+ Nula dnů
Výsledkem nula dnů je null .
Příklad:
SELECT DAYOFWEEK('2030-00-00'); Výsledek:
+-------------------------+| DAYOFWEEK('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 DAYOFWEEK(20300125); Výsledek:
+---------------------+| DAYOFWEEK(20300125) |+---------------------+| 6 |+---------------------+
Nebo dokonce následující (který používá dvouciferný rok):
SELECT DAYOFWEEK(300125); Výsledek:
+-------------------+| DAYOFWEEK(300125) |+-------------------+| 6 |+-------------------+
Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:
SELECT DAYOFWEEK(20300135); Výsledek:
+---------------------+| DAYOFWEEK(20300135) |+---------------------+| 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
DAYOFWEEK('2030/01/25'),
DAYOFWEEK('2030,01,25'),
DAYOFWEEK('2030:01:25'),
DAYOFWEEK('2030;01!25'); Výsledek (při použití vertikálního výstupu):
DAYOFWEEK('2030/01/25'):6DAYOFWEEK('2030,01,25'):6DAYOFWEEK('2030:01:25'):6DAYOFWEEK('2030;01!25'):6 Aktuální datum
Můžeme předat NOW() jako argument data pro použití aktuálního data:
SELECT
NOW(),
DAYOFWEEK(NOW());
Výsledek:
+---------------------+------------------+| NYNÍ() | DAYOFWEEK(NOW()) |+---------------------+------------------+| 2021-05-15 09:17:44 | 7 |+---------------------+------------------+
Neplatné argumenty
Při předání neplatného argumentu DAYOFWEEK() vrátí null :
SELECT DAYOFWEEK('Homer');
Výsledek:
+---------------------+| DAYOFWEEK('Homer') |+--------------------+| NULL |+--------------------+ Chybí argument
Volání DAYOFWEEK() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT DAYOFWEEK();
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'DAYOFWEEK'
A další příklad:
SELECT DAYOFWEEK('2030-01-25', '2045-05-08');
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'DAYOFWEEK'