问题是我直接从shell(bash)编写函数
试图从我不知道的一些IDE中翻译语法!
原始功能是:
CREATE FUNCTION CalcIVA(@Price money)RETURNS money
AS
BEGIN
DECLARE @IVA money
SET @IVA = @Price * 1.16
RETURN @IVA
END;
因此更改了一些语法以与
mysql>
提示符一起使用:CREATE FUNCTION CalculoIVA(x INT)RETURNS INT DETERMINISTIC
BEGIN
DECLARE IVA INT
SET IVA = x *1.16
RETURN IVA
END;
我做错了什么?
错误1064(42000):您的SQL语法有错误;检查
与您的MySQL服务器版本相对应的手册
在第1行的'SET
IVA
= x
* 1.16 RETURN IVA
END'附近使用的语法 最佳答案
确定所需的数据类型。 INT
对于您的1.16构想不太有用。您无法舍入到INT。以下不使用INT
DROP FUNCTION IF EXISTS CalculoIVA;
DELIMITER $$
CREATE FUNCTION CalculoIVA
(x DECIMAL(12,4))
RETURNS DECIMAL(12,4)
DETERMINISTIC
BEGIN
DECLARE IVA DECIMAL(12,4); -- OR FLOAT etc
SET IVA = x *1.16;
RETURN IVA;
END;$$
DELIMITER ;
select CalculoIVA(9.12);
-- 10.5792
如果希望数据类型为
DECIMAL(12,2)
或FLOAT
,只需进行必要的更改。注意:PHPMyAdmin用户不需要DELIMITER包装器。
关于mysql - MySQL函数税(计算IVA),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39418211/