Вы можете добавить мотыльков в первый день года и получить last_date:
SELECT LAST_DAY( DATE_ADD( '2012-01-01 00:00:00',
INTERVAL inMonth - 1 MONTH)
);
Альтернативное решение: ELT Функция:
SELECT cast(
ELT(inmonth, '31', '28', '31', '30', '31', .... ,'31' )
as SMALLINT
) as last_day
Последнее, используйтеcase
заявление:
SELECT case inmonth
when 1 then 31
when 2 then 29
...
when 12 then 31
end as last_day
РЕДАКТИРОВАНИЕ
mysql> CREATE PROCEDURE getLastDayMonth(IN inMonth int)
-> begin
-> SET @t=inMonth -1;
-> SELECT LAST_DAY( DATE_ADD( '2012-01-01 00:00:00',INTERVAL @t MONTH));
-> end@@
Query OK, 0 rows affected (0.24 sec)