In MariaDB, DAY()
is een synoniem voor DAYOFMONTH()
. Het geeft de dag van de maand terug vanaf een bepaalde datum.
Het accepteert één argument, namelijk de datum waarvan u de dag van de maand wilt retourneren.
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:
DAY(date)
Waar date
is de datum om de dag uit te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT DAY('2045-05-18');
Resultaat:
+-------------------+ | DAY('2045-05-18') | +-------------------+ | 18 | +-------------------+
Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT DAY('2045-05-18 01:10:15');
Resultaat:
+----------------------------+ | DAY('2045-05-18 01:10:15') | +----------------------------+ | 18 | +----------------------------+
Nul dagen
Hier is een voorbeeld dat een nuldag in de datum gebruikt:
SELECT DAY('0000-00-00');
Resultaat:
+-------------------+ | DAY('0000-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 DAY(20220308);
Resultaat:
+---------------+ | DAY(20220308) | +---------------+ | 8 | +---------------+
Of zelfs het volgende (met een jaartal van twee cijfers):
SELECT DAY(220308);
Resultaat:
+-------------+ | DAY(220308) | +-------------+ | 8 | +-------------+
Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:
SELECT DAY(220358);
Resultaat:
+-------------+ | DAY(220358) | +-------------+ | 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
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30');
Resultaat (met verticale uitvoer):
DAY('2028/12/30'): 30 DAY('2028,12,30'): 30 DAY('2028:12:30'): 30 DAY('2028;12!30'): 30
Huidige datum
We kunnen NOW()
doorgeven als het datumargument om de huidige datum te gebruiken:
SELECT
NOW(),
DAY(NOW());
Resultaat:
+---------------------+------------+ | NOW() | DAY(NOW()) | +---------------------+------------+ | 2021-05-13 09:41:03 | 13 | +---------------------+------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, DAY()
retourneert null
:
SELECT DAY('Oops!');
Resultaat:
+--------------+ | DAY('Oops!') | +--------------+ | NULL | +--------------+
Ontbrekend argument
Bellen DAY()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT DAY();
Resultaat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
En nog een voorbeeld:
SELECT DAY('2030-01-25', '2045-05-08');
Resultaat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2045-05-08')' at line 1