mysql5.5自定义函数-计算并赋值

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 ;

原文地址:https://www.cnblogs.com/weipt/p/15376903.html