In MariaDB, DAYOFMONTH()
is een ingebouwde datum- en tijdfunctie die de dag van de maand vanaf een bepaalde datum retourneert.
Het accepteert één argument, namelijk de datum waaruit u de dag van de maand wilt halen.
Het resultaat ligt in het bereik 1
tot 31
. Als de datum echter een dagdeel van nul heeft (bijvoorbeeld '0000-00-00'
of '2021-00-00'
), het resultaat is 0
.
Syntaxis
De syntaxis gaat als volgt:
DAYOFMONTH(date)
Waar date
is de datum om de dag uit te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT DAYOFMONTH('2030-01-25');
Resultaat:
+--------------------------+ | DAYOFMONTH('2030-01-25') | +--------------------------+ | 25 | +--------------------------+
Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT DAYOFMONTH('2030-01-25 10:30:45');
Resultaat:
+-----------------------------------+ | DAYOFMONTH('2030-01-25 10:30:45') | +-----------------------------------+ | 25 | +-----------------------------------+
Nul dagen
Hier is een voorbeeld dat een nuldag in de datum gebruikt:
SELECT DAYOFMONTH('2030-00-00');
Resultaat:
+--------------------------+ | DAYOFMONTH('2030-00-00') | +--------------------------+ | 0 | +--------------------------+
Numerieke datums
Het is ook mogelijk om datums als een getal door te geven, zolang het maar logisch is als een datum.
Voorbeeld
SELECT DAYOFMONTH(20300125);
Resultaat:
+----------------------+ | DAYOFMONTH(20300125) | +----------------------+ | 25 | +----------------------+
Of zelfs het volgende (met een jaartal van twee cijfers):
SELECT DAYOFMONTH(300125);
Resultaat:
+--------------------+ | DAYOFMONTH(300125) | +--------------------+ | 25 | +--------------------+
Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:
SELECT DAYOFMONTH(20300135);
Resultaat:
+----------------------+ | DAYOFMONTH(20300135) | +----------------------+ | NULL | +----------------------+
Andere scheidingstekens
U kunt andere scheidingstekens voor de datum gebruiken. MariaDB is behoorlijk vergevingsgezind als het gaat om scheidingstekens op datums. Hier zijn enkele geldige voorbeelden:
SELECT
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25');
Resultaat (met verticale uitvoer):
DAYOFMONTH('2030/01/25'): 25 DAYOFMONTH('2030,01,25'): 25 DAYOFMONTH('2030:01:25'): 25 DAYOFMONTH('2030;01!25'): 25
Huidige datum
We kunnen NOW()
doorgeven als het datumargument om de huidige datum te gebruiken:
SELECT
NOW(),
DAYOFMONTH(NOW());
Resultaat:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 | +---------------------+-------------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, DAYOFMONTH()
retourneert null
:
SELECT DAYOFMONTH('Homer');
Resultaat:
+---------------------+ | DAYOFMONTH('Homer') | +---------------------+ | NULL | +---------------------+
Ontbrekend argument
Bellen DAYOFMONTH()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT DAYOFMONTH();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'
En nog een voorbeeld:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'