这段创建自定义函数的代码在declare c varchar(25)一句报错,查不出原因,望援手解决

这段创建MySQL自定义函数的代码在declare c varchar(25)一句报错,查不出原因,望援手解决。

DELIMITER //

drop function if exists myweek;

create function myweek(a varchar(25)) returns varchar(25)

BEGIN

      declare b varchar(25);

    set b=DATE_ADD(a,interval -day(a)+1 day);

  declare c varchar(25);

select 

case

when a >=DATE_ADD(b,interval 21 day) then concat("第4周【",DATE_ADD(b,interval 21 day),"~",last_day(a),"】")

when a >=DATE_ADD(b,interval 14 day) then concat("第3周【",DATE_ADD(b,interval 14 day),"~",DATE_ADD(b,interval 20 day),"】")

when a >=DATE_ADD(b,interval 7 day) then concat("第2周【",DATE_ADD(b,interval 7 day),"~",DATE_ADD(b,interval 13 day),"】")

else concat("第1周【",b,"~",DATE_ADD(b,interval 6 day),"】")

end into c

    return c;

END;

//

===================================

报错截图:

image.png




alu 发布于 2019-7-29 15:39 (编辑于 2019-7-29 15:41)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
axingLv6专家互助
发布于2019-7-29 16:51(编辑于 2019-7-29 18:15)

定义变量放一起,into c后面加上分号,a变量长度设置大一点

drop function if exists myweek;
create function myweek(a varchar(100)) returns varchar(25)
BEGIN
    declare b varchar(25);
		declare c varchar(25);
    set b=DATE_ADD(a,interval -day(a)+1 day);
select 
case
when a >=DATE_ADD(b,interval 21 day) then concat("第4周【",DATE_ADD(b,interval 21 day),"~",last_day(a),"】")
when a >=DATE_ADD(b,interval 14 day) then concat("第3周【",DATE_ADD(b,interval 14 day),"~",DATE_ADD(b,interval 20 day),"】")
when a >=DATE_ADD(b,interval 7 day) then concat("第2周【",DATE_ADD(b,interval 7 day),"~",DATE_ADD(b,interval 13 day),"】")
else concat("第1周【",b,"~",DATE_ADD(b,interval 6 day),"】")
end into c;
    return c;
END;


---------------------

blob.png

  • alu alu(提问者) 首先非常感谢!但还是报同样的错
    2019-07-29 17:30 
  • axing axing 回复 alu(提问者) 我这里都可以运行出来了
    2019-07-29 17:56 
  • axing axing 回复 alu(提问者) 你直接复制我的试试
    2019-07-29 18:15 
  • alu alu(提问者) 回复 axing 我是原样复制的,但还是报错,我怀疑是不是mysql版本的问题,我的版本是5.7.24-log,您的版本呢?
    2019-07-30 09:10 
  • axing axing 回复 alu(提问者) 5.5.44-log,你把我写的这个的运行结果贴一下
    2019-07-30 09:14 
  • 2关注人数
  • 465浏览人数
  • 最后回答于:2019-7-29 18:15
    请选择关闭问题的原因
    确定 取消
    返回顶部