任何人都可以提供帮助,我的功能在某个地方有错误,但我找不到它?
示例输出应该像
a_testbed.PrevMonth('2012-05-19', 6)
returns '2011-11'
我收到错误:
1292(22007)截断日期值:'2011-11',列为return_date at 第1行:
CREATE function prevmonth(in_date DATE, in_mn_count INT)
returns DATE
BEGIN
DECLARE return_date DATE;
IF in_date IS NULL THEN
SET return_date= date_format(date_add (curdate(), INTERVAL(in_mn_count-12) month), 'Y-%m');
ELSE
SET return_date= date_format(date_add (in_date, INTERVAL (in_mn_count-12) month), '%Y-%m');
END IF;
RETURN return_date;
END; #
答案 0 :(得分:0)
发生错误是因为您声明您的函数将返回date
,并且'2011-11'
无法转换为date
。
您应该将函数声明中的第二行更改为returns varchar
。