MySQL / 5. Работа с датами и временем

Вычисление длины месяца

Задача
Вы хотите узнать, сколько дней в месяце.

Решение
Определите последний день месяца и извлеките из результата часть день-месяца.

Обсуждение
Чтобы вычислить количество дней для месяца, к которому относится указанная дата, определите дату последнего дня месяца (см. предыдущий раздел) и извлеките из результата значение DAYOFMONTH():

mysql> SELECT d,
-> DAYOFMONTH(DATE_SUB(
-> DATE_ADD(DATE_SUB(d,INTERVAL DAYOFMONTH(d)-1 DAY),INTERVAL 1 MONTH),
-> INTERVAL 1 DAY))
-> AS 'days in month'
-> FROM date_val;

+--------------+------------------+
|           d        | days in month |
+--------------+------------------+
| 1864-02-28 |            29         |
| 1900-01-15 |            31         |
| 1987-03-05 |            31         |
| 1999-12-31 |            31         |
| 2000-06-04 |            30         |
+--------------+------------------+

Статьи по MySQL на эту тему:

Выбор записей по временным характеристикам
Вывод значений TIMESTAMP в удобном для чтения виде
Вычисления для високосных годов
Вычисления со значениями TIMESTAMP Задача
Использование значений TIMESTAMP

Вернуться в раздел: MySQL / 5. Работа с датами и временем