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

Jak funguje WEEKDAY() v MariaDB

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'):4 

Aktuá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'

  1. Generování syntetických dat

  2. Jak upravím tabulku, abych povolil CASCADE DELETE?

  3. SQL Server 2008 prázdný řetězec vs. prostor

  4. Uložte výstup PL/pgSQL z PostgreSQL do souboru CSV