W MariaDB, MONTHNAME() to wbudowana funkcja daty i czasu, która zwraca nazwę miesiąca dla podanej daty.
Przyjmuje jeden argument, którym jest data, z której chcesz wyodrębnić nazwę miesiąca.
Składnia
Składnia wygląda tak:
MONTHNAME(date)
Gdzie date to data, z której należy pobrać nazwę miesiąca.
Przykład
Oto przykład:
SELECT MONTHNAME('2041-11-14'); Wynik:
+-------------------------+
| MONTHNAME('2041-11-14') |
+-------------------------+
| November |
+-------------------------+ Język
Język używany w nazwie miesiąca 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 = 'es_AR';
SELECT MONTHNAME('2041-11-14'); Wynik:
+-------------------------+
| MONTHNAME('2041-11-14') |
+-------------------------+
| noviembre |
+-------------------------+
I przełączenie z powrotem do en_US , co jest ustawieniem domyślnym:
SET lc_time_names = 'en_US';
SELECT MONTHNAME('2041-11-14'); Wynik:
+-------------------------+
| MONTHNAME('2041-11-14') |
+-------------------------+
| November |
+-------------------------+ Oto lista lokalizacji obsługiwanych przez MariaDB i oto jak zwrócić własną listę dostępnych lokalizacji.
A 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 MONTHNAME('2041-01-15 10:30:45'); Wynik:
+----------------------------------+
| MONTHNAME('2041-01-15 10:30:45') |
+----------------------------------+
| January |
+----------------------------------+ Zero miesięcy
Miesiąc zero w dacie zwraca null :
SELECT MONTHNAME('2030-00-00'); Wynik:
+-------------------------+
| MONTHNAME('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 MONTHNAME(20201208); Wynik:
+---------------------+ | MONTHNAME(20201208) | +---------------------+ | December | +---------------------+
Lata dwucyfrowe są w porządku:
SELECT MONTHNAME(201208); Wynik:
+-------------------+ | MONTHNAME(201208) | +-------------------+ | December | +-------------------+
Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:
SELECT MONTHNAME(201299); Wynik:
+-------------------+ | MONTHNAME(201299) | +-------------------+ | 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
MONTHNAME('2027/08/19'),
MONTHNAME('2027,08,19'),
MONTHNAME('2027:08:19'),
MONTHNAME('2027;08!19'); Wynik (przy użyciu wyjścia pionowego):
MONTHNAME('2027/08/19'): August
MONTHNAME('2027,08,19'): August
MONTHNAME('2027:08:19'): August
MONTHNAME('2027;08!19'): August Aktualna data
Możemy przekazać NOW() jako argument daty, aby użyć bieżącej daty:
SELECT
NOW(),
MONTHNAME(NOW()); Wynik:
+---------------------+------------------+ | NOW() | MONTHNAME(NOW()) | +---------------------+------------------+ | 2021-05-14 10:11:16 | May | +---------------------+------------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu MONTHNAME() zwraca null :
SELECT MONTHNAME('Wrong!'); Wynik:
+---------------------+
| MONTHNAME('Wrong!') |
+---------------------+
| NULL |
+---------------------+ Brakujący argument
Wywołanie MONTHNAME() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT MONTHNAME(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MONTHNAME'
I kolejny przykład:
SELECT MONTHNAME('2030-01-25', '2045-05-08'); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'MONTHNAME'