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'