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'