Zde jsou tři způsoby, jak vrátit název měsíce z data v MariaDB.
MONTHNAME()
Funkce
MONTHNAME()
funkce je navržena speciálně pro vrácení názvu měsíce z data. Chcete-li to provést, předejte funkci datum při jejím volání. Bude vrácen celý název měsíce.
Příklad:
SELECT MONTHNAME('2021-08-19');
Výsledek:
+-------------------------+ | MONTHNAME('2021-08-19') | +-------------------------+ | August | +-------------------------+
Jazyk použitý pro název měsíce je řízen hodnotou lc_time_names
systémová proměnná. Viz MONTHNAME()
pro příklad toho, jak to ovlivňuje výstup.
DATE_FORMAT()
Funkce
DATE_FORMAT()
funkce formátuje dané datum do zadaného formátu. Datum a formát zadáte při volání funkce.
Celý název měsíce můžete vrátit předáním %M
jako formátovací řetězec.
Příklad:
SELECT DATE_FORMAT('2021-08-19', '%M');
Výsledek:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%M') | +---------------------------------+ | August | +---------------------------------+
Stejně jako u MONTHNAME()
, jazyk použitý pro název měsíce je řízen hodnotou lc_time_names
systémová proměnná. Nicméně DATE_FORMAT()
funkce přijímá volitelný třetí argument, který vám umožňuje určit národní prostředí.
Zde je příklad určení národního prostředí:
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');
Výsledek:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%M', 'ca_ES') | +------------------------------------------+ | agost | +------------------------------------------+
Krátký název měsíce
Předání %b
do DATE_FORMAT()
funkce vrací krátký název měsíce.
Příklad:
SELECT DATE_FORMAT('2021-08-19', '%b');
Výsledek:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%b') | +---------------------------------+ | Aug | +---------------------------------+
To lze replikovat pomocí MONTHNAME()
pomocí LEFT()
uchopit první 3 znaky z názvu měsíce.
Příklad:
SELECT LEFT(MONTHNAME('2021-08-19'), 3);
Výsledek:
+----------------------------------+ | LEFT(MONTHNAME('2021-08-19'), 3) | +----------------------------------+ | Aug | +----------------------------------+
Stejného konceptu lze dosáhnout převedením výsledku MONTHNAME()
na tříznakový datový typ s funkcí jako CAST()
.
Tento přístup však funguje v en_US
, nemusí to vždy fungovat v jiných jazycích. Například:
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";
Výsledek:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+