I MariaDB, DAYOFMONTH()
er en indbygget dato- og tidsfunktion, der returnerer dagen i måneden fra en given dato.
Den accepterer ét argument, som er den dato, du vil udtrække månedsdagen fra.
Resultatet er i området 1
til 31
. Men hvis datoen har en dag på nul (for eksempel '0000-00-00'
eller '2021-00-00'
), er resultatet 0
.
Syntaks
Syntaksen ser sådan ud:
DAYOFMONTH(date)
Hvor date
er den dato, dagen skal udtrækkes fra.
Eksempel
Her er et eksempel:
SELECT DAYOFMONTH('2030-01-25');
Resultat:
+--------------------------------+| DAYOFMONTH('2030-01-25') |+--------------------------------+| 25 |+---------------------------+
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT DAYOFMONTH('2030-01-25 10:30:45');
Resultat:
+----------------------------------------+| DAYOFMONTH('2030-01-25 10:30:45') |+-------------------------------- --+| 25 |+--------------------------------------------+
Nul dage
Her er et eksempel, der bruger en dag på nul i datoen:
SELECT DAYOFMONTH('2030-00-00');
Resultat:
+--------------------------------+| DAYOFMONTH('2030-00-00') |+--------------------------------+| 0 |+---------------------------------+
Numeriske datoer
Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.
Eksempel
SELECT DAYOFMONTH(20300125);
Resultat:
+-----------------------------+| MÅNEDSDAG(20300125) |+---------------------------+| 25 |+-----------------------------+
Eller endda følgende (som bruger et tocifret årstal):
SELECT DAYOFMONTH(300125);
Resultat:
+---------------------------+| MÅNEDSDAG(300125) |+------------------------+| 25 |+---------------------+
Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:
SELECT DAYOFMONTH(20300135);
Resultat:
+-----------------------------+| MÅNEDSDAG(20300135) |+----------------------------+| NULL |+------------------------------+
Andre afgrænsninger
Du kan bruge andre skilletegn for datoen. MariaDB er ret tilgivende, når det kommer til afgrænsninger på datoer. Her er nogle gyldige eksempler:
SELECT
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25');
Resultat (ved hjælp af lodret output):
DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25 før>Aktuel dato
Vi kan sende
NOW()
som dato-argument for at bruge den aktuelle dato:SELECT NOW(), DAYOFMONTH(NOW());
Resultat:
+---------------------+------------------------+| NU() | MÅNEDSDAG(NU()) |+--------------------------+-------------------+ | 13-05-2021 09:02:41 | 13 |+---------------------+------------------------+Ugyldige argumenter
Når et ugyldigt argument sendes,
DAYOFMONTH()
returnerernull
:SELECT DAYOFMONTH('Homer');
Resultat:
+----------------------------+| DAYOFMONTH('Homer') |+---------------------------+| NULL |+----------------------------+Manglende argument
Kalder
DAYOFMONTH()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:SELECT DAYOFMONTH();
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'DAYOFMONTH'Og endnu et eksempel:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08');
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'DAYOFMONTH'