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'):AugustAktuel 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()
returnerernull
: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'