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'