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