Her er tre måder at returnere månedsnavnet fra en dato i MariaDB.
MONTHNAME()
Funktion
MONTHNAME()
funktion er designet specifikt til at returnere månedens navn fra en dato. For at gøre dette skal du videregive datoen til funktionen, når du kalder den. Det fulde månedsnavn vil blive returneret.
Eksempel:
SELECT MONTHNAME('2021-08-19');
Resultat:
+-------------------------+ | MONTHNAME('2021-08-19') | +-------------------------+ | August | +-------------------------+
Sproget, der bruges til månedsnavnet, styres af værdien af lc_time_names
systemvariabel. Se MONTHNAME()
for et eksempel på, hvordan dette påvirker outputtet.
DATE_FORMAT()
Funktion
DATE_FORMAT()
funktion formaterer en given dato til et specificeret format. Du angiver datoen og formatet, når du kalder funktionen.
Du kan returnere hele månedens navn ved at sende %M
som formatstrengen.
Eksempel:
SELECT DATE_FORMAT('2021-08-19', '%M');
Resultat:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%M') | +---------------------------------+ | August | +---------------------------------+
Som med MONTHNAME()
, er det sprog, der bruges til månedsnavnet, styret af værdien af lc_time_names
systemvariabel. Men DATE_FORMAT()
funktion accepterer et valgfrit tredje argument, der giver dig mulighed for at angive lokaliteten.
Her er et eksempel på angivelse af en lokalitet:
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');
Resultat:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%M', 'ca_ES') | +------------------------------------------+ | agost | +------------------------------------------+
Kort månedsnavn
Sender %b
til DATE_FORMAT()
funktion returnerer det korte månedsnavn.
Eksempel:
SELECT DATE_FORMAT('2021-08-19', '%b');
Resultat:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%b') | +---------------------------------+ | Aug | +---------------------------------+
Dette kunne replikeres med MONTHNAME()
funktion ved at bruge LEFT()
for at få fat i de første 3 tegn fra månedens navn.
Eksempel:
SELECT LEFT(MONTHNAME('2021-08-19'), 3);
Resultat:
+----------------------------------+ | LEFT(MONTHNAME('2021-08-19'), 3) | +----------------------------------+ | Aug | +----------------------------------+
Det samme koncept kunne opnås ved at konvertere resultatet af MONTHNAME()
til en datatype på tre tegn med en funktion som CAST()
.
Men mens denne tilgang virker i en_US
, det virker måske ikke altid på andre sprog. For eksempel:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full";
Resultat:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+