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

Jak funguje DAYOFYEAR() v MariaDB

V MariaDB, DAYOFYEAR() je vestavěná funkce data a času, která vrací den v roce z daného data.

Přijímá jeden argument, což je datum, ze kterého chcete extrahovat den v roce.

Vrací den jako číslo v rozsahu 1 na 366 .

Syntaxe

Syntaxe vypadá takto:

DAYOFYEAR(date) 

Kde date je datum, ze kterého se má získat den v roce.

Příklad

Zde je příklad:

SELECT DAYOFYEAR('2030-12-25'); 

Výsledek:

+-------------------------+| DAYOFYEAR('2030-12-25') |+--------------------------+| 359 |+-------------------------+

Hodnoty data a času

Funguje také s hodnotami datetime:

SELECT DAYOFYEAR('2030-02-01 10:30:45'); 

Výsledek:

+----------------------------------+| DAYOFYEAR('2030-02-01 10:30:45') |+---------------------------------- -+| 32 |+----------------------------------+

Nula dnů

Výsledkem nula dnů je null .

Příklad:

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

Výsledek:

+-------------------------+| DAYOFYEAR('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 DAYOFYEAR(20301125); 

Výsledek:

+---------------------+| DAYOFYEAR(20301125) |+---------------------+| 329 |+---------------------+

Nebo dokonce následující (který používá dvouciferný rok):

SELECT DAYOFYEAR(301125); 

Výsledek:

+-------------------+| DAYOFYEAR(301125) |+-------------------+| 329 |+-------------------+

Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:

SELECT DAYOFYEAR(20300135); 

Výsledek:

+---------------------+| DAYOFYEAR(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 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25'); 

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

DAYOFYEAR('2030/06/25'):176DAYOFYEAR('2030,06,25'):176DAYOFYEAR('2030:06:25'):176DAYOFYEAR('2030;06!25'):176 

Aktuální datum

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

SELECT 
    NOW(),
    DAYOFYEAR(NOW()); 

Výsledek:

+---------------------+------------------+| NYNÍ() | DAYOFYEAR(NOW()) |+---------------------+------------------+| 2021-05-16 09:05:57 | 136 |+---------------------+------------------+

Neplatné argumenty

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

SELECT DAYOFYEAR('Friday'); 

Výsledek:

+---------------------+| DAYOFYEAR('pátek') |+---------------------+| NULL |+---------------------+

Chybí argument

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

SELECT DAYOFYEAR(); 

Výsledek:

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

A další příklad:

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

Výsledek:

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

  1. Řešení chyby Drop Column v Oracle 18c a 19c

  2. Manipulace s databázemi SQL pomocí PyQt:Základy

  3. PostgreSQL:mezi datem a časem

  4. Použití relačních databází MySQL na Arch Linuxu