Confira a seguinte técnica no MySQL se você precisar descobrir quantos dias há em um mês com base em uma determinada data.
Exemplo
A maneira mais fácil de explicar é com um exemplo:
SELECT DAYOFMONTH(LAST_DAY('2030-04-15'));
Resultado:
30
Aqui, passamos o
LAST_DAY()
função para o DAYOFMONTH()
função. Então passamos a data para o
LAST_DAY()
função para obter a data do último dia do mês. Em seguida, usamos o DAYOFMONTH()
função para retornar apenas o número do dia desse último dia. Aqui está um exemplo que passa por todos os meses do ano:
SELECT
DAYOFMONTH(LAST_DAY('2030-01-15')) AS "Jan",
DAYOFMONTH(LAST_DAY('2030-02-15')) AS "Feb",
DAYOFMONTH(LAST_DAY('2030-03-15')) AS "Mar",
DAYOFMONTH(LAST_DAY('2030-04-15')) AS "Apr",
DAYOFMONTH(LAST_DAY('2030-05-15')) AS "May",
DAYOFMONTH(LAST_DAY('2030-06-15')) AS "Jun",
DAYOFMONTH(LAST_DAY('2030-07-15')) AS "Jul",
DAYOFMONTH(LAST_DAY('2030-08-15')) AS "Aug",
DAYOFMONTH(LAST_DAY('2030-09-15')) AS "Sep",
DAYOFMONTH(LAST_DAY('2030-10-15')) AS "Oct",
DAYOFMONTH(LAST_DAY('2030-11-15')) AS "Nov",
DAYOFMONTH(LAST_DAY('2030-12-15')) AS "Dec";
Resultado:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 31 28 31 30 31 30 31 31 30 31 30 31