gpt4 book ai didi

mysql - 极其无用的错误消息...无法创建函数

转载 作者:行者123 更新时间:2023-11-29 20:55:59 26 4
gpt4 key购买 nike

我刚刚开始学习如何在 SQL 中创建函数,因此我正在尝试制作一个简单的函数,将日期时间“转换”为文本“日月名年”,但我陷入了困境,因为我可以'不明白,因为错误消息只是说“语法中有错误”并指向首先声明。有人能告诉我我做错了什么吗?

DELIMITER $$CREATE FUNCTION 'testf'(invar DATETIME) RETURNS varchar(15)BEGIN    DECLARE vout varchar(30);    DECLARE vin varchar(15);    set vin = extract(month from invar);    case vin        when 1 then set vout = 'Styczeń';        when 2 then set vout = 'Luty';        when 3 then set vout = 'Marzec';        when 4 then set vout = 'Kwiecień';        when 5 then set vout = 'Maj';        when 6 then set vout = 'Czerwiec';        when 7 then set vout = 'Lipiec';        when 8 then set vout = 'Sierpień';        when 9 then set vout = 'Wrzesień';        when 10 then set vout = 'Październik';        when 11 then set vout = 'Listopad';        when 12 then set vout = 'Grudzień';    end case;    return concat(        extract(day from invar),        ' ',        vout,        ' ',        extract(year from invar)    );END$$DELIMITER ;

最佳答案

只需删除函数名称中的简单引号即可。

DELIMITER $$

CREATE FUNCTION testf(invar DATETIME) RETURNS varchar(15)
BEGIN
DECLARE vout varchar(30);
DECLARE vin varchar(15);

set vin = extract(month from invar);

case vin
when 1 then set vout = 'Styczeń';
when 2 then set vout = 'Luty';
when 3 then set vout = 'Marzec';
when 4 then set vout = 'Kwiecień';
when 5 then set vout = 'Maj';
when 6 then set vout = 'Czerwiec';
when 7 then set vout = 'Lipiec';
when 8 then set vout = 'Sierpień';
when 9 then set vout = 'Wrzesień';
when 10 then set vout = 'Październik';
when 11 then set vout = 'Listopad';
when 12 then set vout = 'Grudzień';
end case;

return concat(
extract(day from invar),
' ',
vout,
' ',
extract(year from invar)
);
END$$

DELIMITER ;

我已经在没有引号的情况下对其进行了测试,并且该函数已成功创建。

关于mysql - 极其无用的错误消息...无法创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37627884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com