mysql自定义函数的写法
特别注意,将全部的定义现在最前面,然后再写其他语句,因为之前将定义变量和赋值混着写,死活报错。最后一个前同事高手“邢哥”解决。
DELIMITER $$
USE `mdcdb`$$
DROP FUNCTION IF EXISTS `getmdcmonth`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `getmdcmonth`(mdcid VARCHAR(10) ,nian INT,yue INT) RETURNS DECIMAL(10,0)
BEGIN
DECLARE dtstart VARCHAR(100);
DECLARE dte DATETIME;
DECLARE dtend VARCHAR(20);
DECLARE X DECIMAL;
SET dtstart=CONCAT(nian,'-',yue,'-1 00:00:00');
SET dte=LAST_DAY(CONVERT(dtstart,DATE));
SET dtend=DATE_FORMAT(dte,'%Y-%m-%d 23:59:59');
SELECT IFNULL(SUM(mdc_value),0) FROM mdc_day WHERE mdcid=mdcid AND dt>=dtstart AND dt<=dtend INTO X;
RETURN X;
END$$
DELIMITER ;