Как использовать этот вариант -
SET @year = 2012;
SET @month = 2;
SELECT STR_TO_DATE(CONCAT(@year, '-', @month), '%Y-%c');
Функция STR_TO_DATE поможет вам установить значение даты.Измените переменные @year и @month с параметрами IN.
Затем вы можете использовать функцию DATE_FORMAT для форматирования значения даты и времени, например:
SET @year = 2012;
SET @month = 2;
SET @dt = STR_TO_DATE(CONCAT(@year, '-', @month), '%Y-%c');
SELECT DATE_FORMAT(@dt, '%m/%d/%Y');
+------------------------------+
| DATE_FORMAT(@dt, '%m/%d/%Y') |
+------------------------------+
| 02/00/2012 |
+------------------------------+
CREATE PROCEDURE build_table(IN years CHAR(5), IN months CHAR(4))
BEGIN
DECLARE format1 date;
SET format1 = DATE_SUB(STR_TO_DATE(CONCAT(years, '-', months, '-01'), '%Y-%c-%e'), INTERVAL 1 DAY);
SELECT format1;
END
CALL build_table(2012, 1);
+------------+
| format1 |
+------------+
| 2011-12-31 | -- default format is 'YYYY-MM-DD'
+------------+