W MariaDB, DAYOFMONTH()
to wbudowana funkcja daty i czasu, która zwraca dzień miesiąca z podanej daty.
Przyjmuje jeden argument, czyli datę, z której chcesz wyodrębnić dzień miesiąca.
Wynik znajduje się w zakresie 1
do 31
. Jeśli jednak data ma część dnia zerowego (na przykład '0000-00-00'
lub '2021-00-00'
), wynikiem jest 0
.
Składnia
Składnia wygląda tak:
DAYOFMONTH(date)
Gdzie date
to data, z której należy wyodrębnić dzień.
Przykład
Oto przykład:
SELECT DAYOFMONTH('2030-01-25');
Wynik:
+--------------------------+ | DAYOFMONTH('2030-01-25') | +--------------------------+ | 25 | +--------------------------+
Wartości daty i godziny
Działa również z wartościami daty i godziny:
SELECT DAYOFMONTH('2030-01-25 10:30:45');
Wynik:
+-----------------------------------+ | DAYOFMONTH('2030-01-25 10:30:45') | +-----------------------------------+ | 25 | +-----------------------------------+
Zero dni
Oto przykład, który używa dnia zerowego w dacie:
SELECT DAYOFMONTH('2030-00-00');
Wynik:
+--------------------------+ | DAYOFMONTH('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 DAYOFMONTH(20300125);
Wynik:
+----------------------+ | DAYOFMONTH(20300125) | +----------------------+ | 25 | +----------------------+
Lub nawet następujący (który używa dwucyfrowego roku):
SELECT DAYOFMONTH(300125);
Wynik:
+--------------------+ | DAYOFMONTH(300125) | +--------------------+ | 25 | +--------------------+
Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:
SELECT DAYOFMONTH(20300135);
Wynik:
+----------------------+ | DAYOFMONTH(20300135) | +----------------------+ | 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
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25');
Wynik (przy użyciu wyjścia pionowego):
DAYOFMONTH('2030/01/25'): 25 DAYOFMONTH('2030,01,25'): 25 DAYOFMONTH('2030:01:25'): 25 DAYOFMONTH('2030;01!25'): 25
Aktualna data
Możemy przekazać NOW()
jako argument daty, aby użyć bieżącej daty:
SELECT
NOW(),
DAYOFMONTH(NOW());
Wynik:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 | +---------------------+-------------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu DAYOFMONTH()
zwraca null
:
SELECT DAYOFMONTH('Homer');
Wynik:
+---------------------+ | DAYOFMONTH('Homer') | +---------------------+ | NULL | +---------------------+
Brakujący argument
Wywołanie DAYOFMONTH()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT DAYOFMONTH();
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'
I kolejny przykład:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08');
Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'