Poniżej znajdują się trzy podejścia, których możesz użyć, aby uzyskać nazwę dnia z daty w MariaDB.
Dwa z tych podejść zwracają pełną nazwę dnia, a jedno zwraca skróconą nazwę dnia.
DAYNAME() Funkcja
DAYNAME() funkcja została zaprojektowana specjalnie do zwracania nazwy dnia z daty. Po prostu podaj datę podczas wywoływania funkcji, a zwróci ona pełną nazwę dnia.
Przykład:
SELECT DAYNAME('2021-08-19'); Wynik:
+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday |
+-----------------------+
Język używany do nazwy dnia jest kontrolowany przez wartość lc_time_names zmienna systemowa. Zobacz DAYNAME() 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ę dnia tygodnia, przekazując %W jako ciąg formatu.
Przykład:
SELECT DATE_FORMAT('2021-08-19', '%W'); Wynik:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday |
+---------------------------------+
Tak jak w przypadku DAYNAME() , język używany do nazwy dnia 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', '%W', 'ca_ES'); Wynik:
+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous |
+------------------------------------------+ Krótka nazwa dnia
Przekazywanie %a do DATE_FORMAT() funkcja zwraca krótką nazwę dnia tygodnia.
Przykład:
SELECT DATE_FORMAT('2021-08-19', '%a'); Wynik:
+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu |
+---------------------------------+
Można to zreplikować za pomocą DAYNAME() funkcja za pomocą LEFT() aby pobrać pierwsze 3 znaki z nazwy dnia tygodnia.
Przykład:
SELECT LEFT(DAYNAME('2021-08-19'), 3); Wynik:
+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu |
+--------------------------------+
Ten sam efekt można również osiągnąć za pomocą funkcji takiej jak CAST() aby przekonwertować wynik na typ danych z trzema znakami.
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', '%a') AS "Short 1",
LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
DAYNAME('2021-08-19') AS "Full"; Wynik:
+---------+-----------+--------------------------+ | Short 1 | Short 2 | Full | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+