Справочник по функциям

LAST_DAY

Возвращает последний день месяца для указанной даты.

MySQL 8.1
LAST_DAY(date)

Параметры

dateDATE
Дата или дата со временем

Возвращаемое значение

Дата (DATE) с учётом високосного года; NULL, если значение не распознано как дата

Примеры

Конец месяца для даты

MySQL 8.1
SELECT LAST_DAY('2024-02-10');
LAST_DAY('2024-02-10')
2024-02-29

Конец месяца для платежей

MySQL 8.1
SELECT date,
	LAST_DAY(date) AS month_end
FROM Payments;
datemonth_end
2005-02-122005-02-28
2005-03-232005-03-31
2005-05-142005-05-31
2005-07-222005-07-31
2005-07-262005-07-31
2005-02-202005-02-28
2005-07-302005-07-31
2005-09-122005-09-30
2005-09-302005-09-30
2005-10-272005-10-31

Число дней в месяце

MySQL 8.1
SELECT DAY(LAST_DAY('2023-02-10')) AS days_in_month;
days_in_month
28

Подробности

Первый день месяца получается из последнего дня прошлого месяца: LAST_DAY(date - INTERVAL 1 MONTH) + INTERVAL 1 DAY. В PostgreSQL функции нет, последний день месяца там считают так: DATE_TRUNC('month', date) + INTERVAL '1 month - 1 day'.

Смотрите также