I MariaDB, MONTHNAME() er en indbygget dato- og tidsfunktion, der returnerer navnet på månedsnavnet for en given dato.
Den accepterer ét argument, som er den dato, du vil udtrække månedsnavnet fra.
Syntaks
Syntaksen ser sådan ud:
MONTHNAME(date)
Hvor date er den dato, man henter månedsnavnet fra.
Eksempel
Her er et eksempel:
SELECT MONTHNAME('2041-11-14'); Resultat:
+------------------------+| MONTHNAME('2041-11-14') |+------------------------+| november |+-------------------------+ Sprog
Sproget, der bruges til månedsnavnet, styres af værdien af lc_time_names systemvariabel.
Her er et eksempel, der viser, hvordan dette påvirker resultatet:
SET lc_time_names = 'es_AR';
SELECT MONTHNAME('2041-11-14'); Resultat:
+------------------------+| MONTHNAME('2041-11-14') |+------------------------+| noviembre |+-------------------------+
Og skifter tilbage til en_US , som er standard:
SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14'); Resultat:
+------------------------+| MONTHNAME('2041-11-14') |+------------------------+| november |+-------------------------+ Her er en liste over lokaliteter, der understøttes af MariaDB, og her er, hvordan du returnerer din egen liste over tilgængelige lokaliteter.
Og her er et indlæg, der forklarer, hvordan du kontrollerer værdien af dine lc_time_names systemvariabel.
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT MONTHNAME('2041-01-15 10:30:45'); Resultat:
+----------------------------------------+| MONTHNAME('2041-01-15 10:30:45') |+-------------------------------- -+| januar |+----------------------------------------+ Nul måneder
At have en nul måned i datoen returnerer null :
SELECT MONTHNAME('2030-00-00'); Resultat:
+------------------------+| MONTHNAME('2030-00-00') |+------------------------+| NULL |+-------------------------+ Numeriske datoer
Det er også muligt at videregive datoer som et tal, så længe det giver mening som en dato.
Eksempel
SELECT MONTHNAME(20201208); Resultat:
+----------------------------+| MÅNEDSNAVN(20201208) |+----------------------------+| December |+-----------------------------+
Tocifrede årstal er fint:
SELECT MONTHNAME(201208); Resultat:
+------------------------+| MONTHNAME(201208) |+------------------------+| december |+--------------------+
Men det skal give mening som en date. Her er, hvad der sker, hvis jeg øger dagsdelen til en ugyldig dag:
SELECT MONTHNAME(201299); Resultat:
+------------------------+| MÅNEDSNAVN(201299) |+------------------------+| NULL |+--------------------+
Andre afgrænsninger
Du kan bruge andre skilletegn for datoen. MariaDB er ret tilgivende, når det kommer til afgrænsninger på datoer. Her er nogle gyldige eksempler:
SELECT
MONTHNAME('2027/08/19'),
MONTHNAME('2027,08,19'),
MONTHNAME('2027:08:19'),
MONTHNAME('2027;08!19'); Resultat (ved hjælp af lodret output):
MONTHNAME('2027/08/19'):AugustMONTHNAME('2027,08,19'):AugustMONTHNAME('2027:08:19'):AugustMONTHNAME('2027;08!19'):August Aktuel dato
Vi kan sende NOW() som dato-argument for at bruge den aktuelle dato:
SELECT
NOW(),
MONTHNAME(NOW());
Resultat:
+---------------------+----------------+| NU() | MÅNEDSNAVN(NU()) |+---------------------+----------------+| 14-05-2021 10:11:16 | maj |+---------------------+------------------------+
Ugyldige argumenter
Når et ugyldigt argument blev sendt, MONTHNAME() returnerer null :
SELECT MONTHNAME('Wrong!');
Resultat:
+----------------------------+| MONTHNAME('Forkert!') |+----------------------+| NULL |+----------------------------+ Manglende argument
Kalder MONTHNAME() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT MONTHNAME();
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'MONTHNAME'
Og endnu et eksempel:
SELECT MONTHNAME('2030-01-25', '2045-05-08');
Resultat:
FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'MONTHNAME'