Używając MySQL, możesz użyć LAST_DAY() funkcja zwracająca ostatni dzień danego miesiąca.
Możesz podać bieżącą datę lub inną określoną datę (na przykład datę z kolumny w bazie danych) i LAST_DAY() zwróci ostatni dzień miesiąca dla tej daty.
Składnia
Składnia wygląda tak:
LAST_DAY(date)
Gdzie date to data, za którą chcesz zwrócić ostatni dzień.
Przykład 1 – Podstawowe użycie
Oto przykład pokazujący, jak to działa.
SELECT LAST_DAY('2021-01-01');
Wynik:
+------------------------+
| LAST_DAY('2021-01-01') |
+------------------------+
| 2021-01-31 |
+------------------------+
Tak więc przyjmuje datę, którą podaliśmy jako argument, a następnie zwraca ostatni dzień tego miesiąca.
Przykład 2 – lata przestępne
Jak można się spodziewać, jest wystarczająco sprytny, aby radzić sobie z latami przestępnymi.
Rok inny niż przestępny
SELECT LAST_DAY('2021-02-01');
Wynik:
+------------------------+
| LAST_DAY('2021-02-01') |
+------------------------+
| 2021-02-28 |
+------------------------+
Rok przestępny
SELECT LAST_DAY('2020-02-01');
Wynik:
+------------------------+
| LAST_DAY('2020-02-01') |
+------------------------+
| 2020-02-29 |
+------------------------+
Przykład 3 – Wartości daty i godziny
Możesz również podać datę i godzinę wartość.
SELECT LAST_DAY('2021-02-01 23:59:15');
Wynik:
+---------------------------------+
| LAST_DAY('2021-02-01 23:59:15') |
+---------------------------------+
| 2021-02-28 |
+---------------------------------+
Przykład 4 – Nieprawidłowe wartości
Jeśli podasz nieprawidłową datę, zostanie zwrócona wartość null.
SELECT LAST_DAY('2021-02-32');
Wynik:
+------------------------+
| LAST_DAY('2021-02-32') |
+------------------------+
| NULL |
+------------------------+
1 row in set, 1 warning (0.00 sec)
Przykład 5 – Przykład bazy danych
Oto przykład tej funkcji używanej w zapytaniu do bazy danych.
USE sakila; SELECT payment_date AS 'Date/Time', LAST_DAY(payment_date) AS 'Last day of month' FROM payment WHERE payment_id = 1;
Wynik:
+---------------------+-------------------+ | Date/Time | Last day of month | +---------------------+-------------------+ | 2005-05-25 11:30:37 | 2005-05-31 | +---------------------+-------------------+