注册

新手求问mysql函数转换语法报错问题

kkz 2023/08/19 648 9 已解决
CREATE FUNCTION `test_h`(`cyear` varchar(8),`cmouth` varchar(8))
 RETURNS decimal(10,2)
BEGIN
	declare c decimal(10,2);
	select IFNULL(sum(payment), 0) as total1
	from per_p
	WHERE type='1' AND index_type='2' 
		AND date_format(time, '%Y-%m') = CONCAT(cyear, '-',cmouth) into c;
	RETURN c;
END;

mysql函数改成

CREATE OR REPLACE FUNCTION "test_h"("cyear" IN VARCHAR(8),"cmouth" IN VARCHAR(8))
RETURN DECIMAL(10, 2)
AS
	c DECIMAL(10, 2);
BEGIN
SELECT NVL(SUM(payment), 0) INTO c
  FROM per_p
  WHERE type = '1' AND index_type = '2'
   AND TO_CHAR(time, 'YYYY-MM') = cyear || '-' || cmouth;
  RETURN c;
END;

这样改还是报错

回答 0
暂无回答
扫一扫
联系客服