W MariaDB, DAY()
jest synonimem DAYOFMONTH()
. Zwraca dzień miesiąca z podanej daty.
Przyjmuje jeden argument, czyli datę, z której chcesz zwrócić 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:
DAY(date)
Gdzie date
to data, z której należy wyodrębnić dzień.
Przykład
Oto przykład:
SELECT DAY('2045-05-18');
Wynik:
+-------------------+ | DAY('2045-05-18') | +-------------------+ | 18 | +-------------------+
Wartości daty i godziny
Działa również z wartościami daty i godziny:
SELECT DAY('2045-05-18 01:10:15');
Wynik:
+----------------------------+ | DAY('2045-05-18 01:10:15') | +----------------------------+ | 18 | +----------------------------+
Zero dni
Oto przykład, który używa dnia zerowego w dacie:
SELECT DAY('0000-00-00');
Wynik:
+-------------------+ | DAY('0000-00-00') | +-------------------+ | 0 | +-------------------+
Daty numeryczne
Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.
Przykład
SELECT DAY(20220308);
Wynik:
+---------------+ | DAY(20220308) | +---------------+ | 8 | +---------------+
Lub nawet następujący (który używa dwucyfrowego roku):
SELECT DAY(220308);
Wynik:
+-------------+ | DAY(220308) | +-------------+ | 8 | +-------------+
Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:
SELECT DAY(220358);
Wynik:
+-------------+ | DAY(220358) | +-------------+ | 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
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30');
Wynik (przy użyciu wyjścia pionowego):
DAY('2028/12/30'): 30 DAY('2028,12,30'): 30 DAY('2028:12:30'): 30 DAY('2028;12!30'): 30
Aktualna data
Możemy przekazać NOW()
jako argument daty, aby użyć bieżącej daty:
SELECT
NOW(),
DAY(NOW());
Wynik:
+---------------------+------------+ | NOW() | DAY(NOW()) | +---------------------+------------+ | 2021-05-13 09:41:03 | 13 | +---------------------+------------+
Nieprawidłowe argumenty
Po przekazaniu nieprawidłowego argumentu DAY()
zwraca null
:
SELECT DAY('Oops!');
Wynik:
+--------------+ | DAY('Oops!') | +--------------+ | NULL | +--------------+
Brakujący argument
Wywołanie DAY()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT DAY();
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 DAY('2030-01-25', '2045-05-08');
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 ' '2045-05-08')' at line 1