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'):176Aktuá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'