W MariaDB, MONTH()
to wbudowana funkcja daty i czasu, która zwraca miesiąc z podanego wyrażenia daty.
Przyjmuje jeden argument, czyli datę, z której chcesz wyodrębnić miesiąc.
Zwraca miesiąc jako liczbę z zakresu 1
do 12
od stycznia do grudnia. Jeśli data ma część miesiąca zerowego (np. 0000-00-00
lub 2025-00-00
), wynikiem jest 0
.
Składnia
Składnia wygląda tak:
MONTH(date)
Gdzie date
jest wyrażeniem daty, z którego pochodzi miesiąc.
Przykład
Oto przykład:
SELECT MONTH('2030-08-01');
Wynik:
+---------------------+ | MONTH('2030-08-01') | +---------------------+ | 8 | +---------------------+
Wartości daty i godziny
Działa również z wartościami daty i godziny:
SELECT MONTH('2030-08-01 10:30:45');
Wynik:
+------------------------------+ | MONTH('2030-08-01 10:30:45') | +------------------------------+ | 8 | +------------------------------+
Zero miesięcy
Zero miesięcy daje w wyniku 0
.
Przykład:
SELECT MONTH('2030-00-00');
Wynik:
+---------------------+ | MONTH('2030-00-00') | +---------------------+ | 0 | +---------------------+
Daty numeryczne
Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.
Przykład
SELECT MONTH(20301125);
Wynik:
+-----------------+ | MONTH(20301125) | +-----------------+ | 11 | +-----------------+
Lub nawet następujący (który używa dwucyfrowego roku):
SELECT MONTH(301125);
Wynik:
+---------------+ | MONTH(301125) | +---------------+ | 11 | +---------------+
Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:
SELECT MONTH(20301135);
Wynik:
+-----------------+ | MONTH(20301135) | +-----------------+ | 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
MONTH('2030/06/25'),
MONTH('2030,06,25'),
MONTH('2030:06:25'),
MONTH('2030;06!25');
Wynik (przy użyciu wyjścia pionowego):
MONTH('2030/06/25'): 6 MONTH('2030,06,25'): 6 MONTH('2030:06:25'): 6 MONTH('2030;06!25'): 6
Aktualna data
Możemy przekazać NOW()
jako argument datetime, aby użyć bieżącej daty:
SELECT
NOW(),
MONTH(NOW());
Wynik:
+---------------------+--------------+ | NOW() | MONTH(NOW()) | +---------------------+--------------+ | 2021-05-16 15:00:06 | 5 | +---------------------+--------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu MONTH()
zwraca null
:
SELECT MONTH('2030-65-78');
Wynik:
+---------------------+ | MONTH('2030-65-78') | +---------------------+ | NULL | +---------------------+
Brakujący argument
Wywołanie MONTH()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT MONTH();
Wynik:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
I kolejny przykład:
SELECT MONTH('2030-12-10', '2031-12-10');
Wynik:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2031-12-10')' at line 1