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 | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+