I MariaDB, MONTHNAME()
är en inbyggd datum- och tidsfunktion som returnerar namnet på månadsnamnet för ett givet datum.
Den accepterar ett argument, vilket är det datum du vill extrahera månadsnamnet från.
Syntax
Syntaxen ser ut så här:
MONTHNAME(date)
Där date
är datumet man hämtar månadsnamnet från.
Exempel
Här är ett exempel:
SELECT MONTHNAME('2041-11-14');
Resultat:
+------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| November |+-------------------------+
Språk
Språket som används för månadsnamnet styrs av värdet för lc_time_names
systemvariabel.
Här är ett exempel som visar hur detta påverkar resultatet:
SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14');
Resultat:
+------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| noviembre |+-------------------------+
Och byter tillbaka till en_US
, vilket är standard:
SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14');
Resultat:
+------------------------+| MONTHNAME('2041-11-14') |+-------------------------+| November |+-------------------------+
Här är en lista över språk som stöds av MariaDB, och så här returnerar du din egen lista över tillgängliga språk.
Och här är ett inlägg som förklarar hur du kontrollerar värdet på dina lc_time_names
systemvariabel.
Datetime-värden
Det fungerar också med datetime-värden:
SELECT MONTHNAME('2041-01-15 10:30:45');
Resultat:
+------------------------------------------+| MONTHNAME('2041-01-15 10:30:45') |+---------------------------------------- -+| Januari |+----------------------------------------+
Noll månader
Att ha en noll månad i datumet returnerar null
:
SELECT MONTHNAME('2030-00-00');
Resultat:
+------------------------+| MONTHNAME('2030-00-00') |+-------------------------+| NULL |+-------------------------+
Numeriska datum
Det är också möjligt att skicka datum som ett nummer, så länge det är vettigt som ett datum.
Exempel
SELECT MONTHNAME(20201208);
Resultat:
+----------------------------+| MÅNADNAMN(20201208) |+----------------------------+| December |+----------------------------+
Tvåsiffriga årtal är bra:
SELECT MONTHNAME(201208);
Resultat:
+------------------------+| MONTHNAME(201208) |+------------------------+| December |+--------------------+
Men det måste vara vettigt som en dejt. Så här händer om jag ökar dagdelen till en ogiltig dag:
SELECT MONTHNAME(201299);
Resultat:
+------------------------+| MÅNADNAMN(201299) |+------------------------+| 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
MONTHNAME('2027/08/19'),
MONTHNAME('2027,08,19'),
MONTHNAME('2027:08:19'),
MONTHNAME('2027;08!19');
Resultat (med vertikal utdata):
MONTHNAME('2027/08/19'):AugustMONTHNAME('2027,08,19'):AugustMONTHNAME('2027:08:19'):AugustMONTHNAME('2027;08!19'):AugustiAktuellt datum
Vi kan skicka
NOW()
som datumargument för att använda det aktuella datumet:SELECT NOW(), MONTHNAME(NOW());
Resultat:
+---------------------+-----------------+| NU() | MÅNADSNAMN(NU()) |+---------------------+----------------+| 2021-05-14 10:11:16 | maj |+---------------------+------------------------+Ogiltiga argument
När ett ogiltigt argument skickades,
MONTHNAME()
returnerarnull
:SELECT MONTHNAME('Wrong!');
Resultat:
+----------------------------+| MONTHNAME('Fel!') |+---------------------------+| NULL |+----------------------------+Argument saknas
Anropar
MONTHNAME()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:SELECT MONTHNAME();
Resultat:
ERROR 1582 (42000):Fel parameterantal i anropet till den ursprungliga funktionen 'MONTHNAME'Och ett annat exempel:
SELECT MONTHNAME('2030-01-25', '2045-05-08');
Resultat:
ERROR 1582 (42000):Fel parameterantal i anropet till den ursprungliga funktionen 'MONTHNAME'