Możesz użyć DAYOFMONTH()
funkcja w MySQL, która zwraca dzień miesiąca od daty.
Przez „dzień miesiąca” rozumiem wartość od 1 do 31 (lub 0 dla dat z częścią dnia zerowego), w przeciwieństwie do dnia tygodnia, takiego jak poniedziałek itp.
Na przykład, jeśli podasz datę 2018-01-07 , DAYOFMONTH()
funkcja zwróci 7 .
Składnia
Składnia wygląda tak:
DAYOFMONTH(date)
Gdzie date
to wartość daty, z której ma być zwracany dzień miesiąca.
Przykład
Oto przykład do zademonstrowania.
SELECT DAYOFMONTH('2020-06-18') AS 'Result';
Wynik:
+--------+ | Result | +--------+ | 18 | +--------+
Jeśli część dnia ma wiodące zero, wiodące zero jest pomijane w wyniku. Przykład:
SELECT DAYOFMONTH('2020-06-07') AS 'Result';
Wynik:
+--------+ | Result | +--------+ | 7 | +--------+
Przykład bazy danych
Oto przykład wyodrębniania części dnia z kolumny podczas uruchamiania zapytania w bazie danych.
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFMONTH(payment_date) AS 'Day of Month' FROM payment WHERE payment_id = 1;
Wynik:
+---------------------+--------------+ | Date/Time | Day of Month | +---------------------+--------------+ | 2005-05-25 11:30:37 | 25 | +---------------------+--------------+
Aktualna data/godzina
Oto przykład wyodrębnienia części dnia z bieżącej daty i godziny (która jest zwracana za pomocą funkcji NOW()
funkcja).
SELECT NOW(), DAYOFMONTH(NOW());
Wynik:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2018-06-25 18:16:00 | 25 | +---------------------+-------------------+
Innym sposobem na to jest użycie CURDATE()
funkcja, która zwraca tylko datę (ale nie godzinę).
SELECT CURDATE(), DAYOFMONTH(CURDATE());
Wynik:
+------------+-----------------------+ | CURDATE() | DAYOFMONTH(CURDATE()) | +------------+-----------------------+ | 2018-06-25 | 25 | +------------+-----------------------+