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