W MariaDB, DAYNAME() to wbudowana funkcja daty i czasu, która zwraca nazwę dnia tygodnia dla podanej daty.
Przyjmuje jeden argument, którym jest data, z której chcesz wyodrębnić nazwę dnia.
Składnia
Składnia wygląda tak:
DAYNAME(date)
Gdzie date to data, z której należy pobrać nazwę dnia.
Przykład
Oto przykład:
SELECT DAYNAME('2045-10-17'); Wynik:
+-----------------------+
| DAYNAME('2045-10-17') |
+-----------------------+
| Tuesday |
+-----------------------+ Język
Język używany do nazwy dnia jest kontrolowany przez wartość lc_time_names zmienna systemowa.
Oto przykład, który pokazuje, jak to wpływa na wynik:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17'); Wynik:
+-----------------------+
| DAYNAME('2045-10-17') |
+-----------------------+
| Dienstag |
+-----------------------+
I przełączenie z powrotem do en_US , co jest ustawieniem domyślnym:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17'); Wynik:
+-----------------------+
| DAYNAME('2045-10-17') |
+-----------------------+
| Tuesday |
+-----------------------+ Oto lista lokalizacji obsługiwanych przez MariaDB i oto jak zwrócić własną listę dostępnych lokalizacji.
Skoro już przy tym jesteśmy, oto post wyjaśniający, jak sprawdzić wartość swojego lc_time_names zmienna systemowa.
Wartości daty i godziny
Działa również z wartościami daty i godziny:
SELECT DAYNAME('2030-01-25 10:30:45'); Wynik:
+--------------------------------+
| DAYNAME('2030-01-25 10:30:45') |
+--------------------------------+
| Friday |
+--------------------------------+ Zero dni
Posiadanie dnia zerowego w dacie zwraca null :
SELECT DAYNAME('2030-00-00'); Wynik:
+-----------------------+
| DAYNAME('2030-00-00') |
+-----------------------+
| NULL |
+-----------------------+ Daty numeryczne
Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.
Przykład
SELECT DAYNAME(20201108); Wynik:
+-------------------+ | DAYNAME(20201108) | +-------------------+ | Sunday | +-------------------+
Lata dwucyfrowe są w porządku:
SELECT DAYNAME(201108); Wynik:
+-----------------+ | DAYNAME(201108) | +-----------------+ | Sunday | +-----------------+
Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część miesiąca do nieprawidłowego miesiąca:
SELECT DAYNAME(209908); Wynik:
+-----------------+ | DAYNAME(209908) | +-----------------+ | NULL | +-----------------+
Inne ograniczniki
Możesz użyć innych ograniczników daty. MariaDB jest dość wyrozumiała, jeśli chodzi o ograniczniki dat. Oto kilka poprawnych przykładów:
SELECT
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19'); Wynik (przy użyciu wyjścia pionowego):
DAYNAME('2027/08/19'): Thursday
DAYNAME('2027,08,19'): Thursday
DAYNAME('2027:08:19'): Thursday
DAYNAME('2027;08!19'): Thursday Aktualna data
Możemy przekazać NOW() jako argument daty, aby użyć bieżącej daty:
SELECT
NOW(),
DAYNAME(NOW()); Wynik:
+---------------------+----------------+ | NOW() | DAYNAME(NOW()) | +---------------------+----------------+ | 2021-05-13 13:29:10 | Thursday | +---------------------+----------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu DAYNAME() zwraca null :
SELECT DAYNAME('Dang!'); Wynik:
+------------------+
| DAYNAME('Dang!') |
+------------------+
| NULL |
+------------------+ Brakujący argument
Wywołanie DAYNAME() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT DAYNAME(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'
I kolejny przykład:
SELECT DAYNAME('2030-01-25', '2045-05-08'); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'