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 | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+