In MariaDB, MONTH() is een ingebouwde datum- en tijdfunctie die de maand retourneert uit een bepaalde datumuitdrukking.
Het accepteert één argument, namelijk de datum waarvan u de maand wilt extraheren.
Het geeft de maand terug als een getal in het bereik 1 tot 12 voor januari tot en met december. Als de datum een maanddeel van nul heeft (bijv. 0000-00-00 of 2025-00-00 ), het resultaat is 0 .
Syntaxis
De syntaxis gaat als volgt:
MONTH(date)
Waar date is de datumuitdrukking om de maand uit te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT MONTH('2030-08-01'); Resultaat:
+---------------------+
| MONTH('2030-08-01') |
+---------------------+
| 8 |
+---------------------+ Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT MONTH('2030-08-01 10:30:45'); Resultaat:
+------------------------------+
| MONTH('2030-08-01 10:30:45') |
+------------------------------+
| 8 |
+------------------------------+ Nul maanden
Nul maanden resulteert in 0 .
Voorbeeld:
SELECT MONTH('2030-00-00'); Resultaat:
+---------------------+
| MONTH('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 MONTH(20301125); Resultaat:
+-----------------+ | MONTH(20301125) | +-----------------+ | 11 | +-----------------+
Of zelfs het volgende (met een jaartal van twee cijfers):
SELECT MONTH(301125); Resultaat:
+---------------+ | MONTH(301125) | +---------------+ | 11 | +---------------+
Maar het moet logisch zijn als een date. Dit gebeurt er als ik het daggedeelte verhoog naar een ongeldige dag:
SELECT MONTH(20301135); Resultaat:
+-----------------+ | MONTH(20301135) | +-----------------+ | 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
MONTH('2030/06/25'),
MONTH('2030,06,25'),
MONTH('2030:06:25'),
MONTH('2030;06!25'); Resultaat (met verticale uitvoer):
MONTH('2030/06/25'): 6
MONTH('2030,06,25'): 6
MONTH('2030:06:25'): 6
MONTH('2030;06!25'): 6 Huidige datum
We kunnen NOW() doorgeven als het datetime-argument om de huidige datum te gebruiken:
SELECT
NOW(),
MONTH(NOW()); Resultaat:
+---------------------+--------------+ | NOW() | MONTH(NOW()) | +---------------------+--------------+ | 2021-05-16 15:00:06 | 5 | +---------------------+--------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, MONTH() retourneert null :
SELECT MONTH('2030-65-78'); Resultaat:
+---------------------+
| MONTH('2030-65-78') |
+---------------------+
| NULL |
+---------------------+ Ontbrekend argument
Bellen MONTH() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT MONTH(); 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 MONTH('2030-12-10', '2031-12-10'); 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 ' '2031-12-10')' at line 1