I MariaDB, MONTH()
är en inbyggd datum- och tidsfunktion som returnerar månaden från ett givet datumuttryck.
Den accepterar ett argument, vilket är det datum du vill extrahera månaden från.
Den returnerar månaden som ett tal i intervallet 1
till 12
för januari till december. Om datumet har en nollmånadsdel (t.ex. 0000-00-00
eller 2025-00-00
), blir resultatet 0
.
Syntax
Syntaxen ser ut så här:
MONTH(date)
Där date
är datumuttrycket att hämta månaden från.
Exempel
Här är ett exempel:
SELECT MONTH('2030-08-01');
Resultat:
+----------------------------+| MONTH('2030-08-01') |+---------------------------+| 8 |+----------------------------+
Datetime-värden
Det fungerar också med datetime-värden:
SELECT MONTH('2030-08-01 10:30:45');
Resultat:
+-------------------------------------+| MONTH('2030-08-01 10:30:45') |+------------------------------------+| 8 |+-------------------------------------+
Noll månader
Noll månader resulterar i 0
.
Exempel:
SELECT MONTH('2030-00-00');
Resultat:
+----------------------------+| MÅNAD('2030-00-00') |+----------------------------+| 0 |+----------------------------+
Numeriska datum
Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.
Exempel
SELECT MONTH(20301125);
Resultat:
+----------------+| MONTH(20301125) |+----------------+| 11 |+-----------------+
Eller till och med följande (som använder ett tvåsiffrigt år):
SELECT MONTH(301125);
Resultat:
+---------------+| MONTH(301125) |+-----------------+| 11 |+----------------------+
Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:
SELECT MONTH(20301135);
Resultat:
+----------------+| MONTH(20301135) |+-----------------+| NULL |+-----------------+
Andra avgränsare
Du kan använda andra avgränsare för datumet. MariaDB är ganska förlåtande när det kommer till avgränsare på datum. Här är några giltiga exempel:
SELECT
MONTH('2030/06/25'),
MONTH('2030,06,25'),
MONTH('2030:06:25'),
MONTH('2030;06!25');
Resultat (med vertikal utdata):
MONTH('2030/06/25'):6MONTH('2030,06,25'):6MONTH('2030:06:25'):6MONTH('2030;06!25'):6Aktuellt datum
Vi kan skicka
NOW()
som datetime-argument för att använda det aktuella datumet:SELECT NOW(), MONTH(NOW());
Resultat:
+----------------------------+--------------+| NU() | MÅNAD(NU()) |+----------------------+-------------+| 2021-05-16 15:00:06 | 5 |+----------------------+--------------+Ogiltiga argument
När ett ogiltigt argument skickades,
MONTH()
returnerarnull
:SELECT MONTH('2030-65-78');
Resultat:
+----------------------------+| MONTH('2030-65-78') |+--------------------------+| NULL |+----------------------------+Argument saknas
Anropar
MONTH()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:SELECT MONTH();
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ')' på rad 1Och ett annat exempel:
SELECT MONTH('2030-12-10', '2031-12-10');
Resultat:
ERROR 1064 (42000):Du har ett fel i din SQL-syntax; kontrollera manualen som motsvarar din MariaDB-serverversion för rätt syntax att använda nära ''2031-12-10')' på rad 1