Oto trzy sposoby na zwrócenie nazwy miesiąca z daty w MariaDB.
MONTHNAME()
Funkcja
MONTHNAME()
funkcja została zaprojektowana specjalnie do zwracania nazwy miesiąca z daty. Aby to zrobić, przekaż datę do funkcji podczas jej wywoływania. Pełna nazwa miesiąca zostanie zwrócona.
Przykład:
SELECT MONTHNAME('2021-08-19');
Wynik:
+-------------------------+ | MONTHNAME('2021-08-19') | +-------------------------+ | August | +-------------------------+
Język używany dla nazwy miesiąca jest kontrolowany przez wartość lc_time_names
zmienna systemowa. Zobacz MONTHNAME()
dla przykładu, jak to wpływa na wyjście.
DATE_FORMAT()
Funkcja
DATE_FORMAT()
funkcja formatuje podaną datę do określonego formatu. Datę i format określasz podczas wywoływania funkcji.
Możesz zwrócić pełną nazwę miesiąca, przekazując %M
jako ciąg formatu.
Przykład:
SELECT DATE_FORMAT('2021-08-19', '%M');
Wynik:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%M') | +---------------------------------+ | August | +---------------------------------+
Tak jak w przypadku MONTHNAME()
, język używany dla nazwy miesiąca jest kontrolowany przez wartość lc_time_names
zmienna systemowa. Jednak DATE_FORMAT()
funkcja akceptuje opcjonalny trzeci argument, który pozwala określić ustawienia regionalne.
Oto przykład określenia lokalizacji:
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');
Wynik:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%M', 'ca_ES') | +------------------------------------------+ | agost | +------------------------------------------+
Krótka nazwa miesiąca
Przekazywanie %b
do DATE_FORMAT()
funkcja zwraca skróconą nazwę miesiąca.
Przykład:
SELECT DATE_FORMAT('2021-08-19', '%b');
Wynik:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%b') | +---------------------------------+ | Aug | +---------------------------------+
Można to zreplikować za pomocą MONTHNAME()
funkcja za pomocą LEFT()
aby pobrać pierwsze 3 znaki z nazwy miesiąca.
Przykład:
SELECT LEFT(MONTHNAME('2021-08-19'), 3);
Wynik:
+----------------------------------+ | LEFT(MONTHNAME('2021-08-19'), 3) | +----------------------------------+ | Aug | +----------------------------------+
Tę samą koncepcję można osiągnąć, konwertując wynik MONTHNAME()
do trzyznakowego typu danych z funkcją taką jak CAST()
.
Jednak chociaż to podejście działa w en_US
, może nie zawsze działać w innych językach. Na przykład:
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";
Wynik:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+