V MariaDB, DAYOFMONTH()
je vestavěná funkce data a času, která vrací den v měsíci z daného data.
Přijímá jeden argument, což je datum, ze kterého chcete extrahovat den v měsíci.
Výsledek je v rozsahu 1
do 31
. Pokud však datum obsahuje část nula dne (například '0000-00-00'
nebo '2021-00-00'
), výsledkem je 0
.
Syntaxe
Syntaxe vypadá takto:
DAYOFMONTH(date)
Kde date
je datum, ze kterého se má extrahovat den.
Příklad
Zde je příklad:
SELECT DAYOFMONTH('2030-01-25');
Výsledek:
+--------------------------+| DAYOFMONTH('2030-01-25') |+--------------------------+| 25 |+--------------------------+
Hodnoty data a času
Funguje také s hodnotami datetime:
SELECT DAYOFMONTH('2030-01-25 10:30:45');
Výsledek:
+-----------------------------------+| DAYOFMONTH('2030-01-25 10:30:45') |+---------------------------------- --+| 25 |+-----------------------------------+
Nula dnů
Zde je příklad, který používá nultý den v datu:
SELECT DAYOFMONTH('2030-00-00');
Výsledek:
+--------------------------+| DAYOFMONTH('2030-00-00') |+--------------------------+| 0 |+--------------------------+
Číselná data
Je také možné předávat data jako číslo, pokud to dává smysl jako datum.
Příklad
SELECT DAYOFMONTH(20300125);
Výsledek:
+----------------------+| DAYOFMONTH(20300125) |+----------------------+| 25 |+----------------------+
Nebo dokonce následující (který používá dvouciferný rok):
SELECT DAYOFMONTH(300125);
Výsledek:
+---------------------+| DAYOFMONTH(300125) |+--------------------+| 25 |+--------------------+
Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:
SELECT DAYOFMONTH(20300135);
Výsledek:
+----------------------+| DAYOFMONTH(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
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25');
Výsledek (při použití vertikálního výstupu):
DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25Aktuální datum
Můžeme předat
NOW()
jako argument data pro použití aktuálního data:SELECT NOW(), DAYOFMONTH(NOW());
Výsledek:
+---------------------+-------------------+| NYNÍ() | DAYOFMONTH(NOW()) |+---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 |+---------------------+-------------------+Neplatné argumenty
Při předání neplatného argumentu
DAYOFMONTH()
vrátínull
:SELECT DAYOFMONTH('Homer');
Výsledek:
+---------------------+| DAYOFMONTH('Homer') |+---------------------+| NULL |+---------------------+Chybí argument
Volání
DAYOFMONTH()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:SELECT DAYOFMONTH();
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'DAYOFMONTH'A další příklad:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08');
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'DAYOFMONTH'