场景是已知年度开始日为任意一天,求年度的终了日--其中考虑了跨年,夹闰月
DELIMITER $$
DROP FUNCTION IF EXISTS `fun_get_yearly_end_date`$$
CREATE FUNCTION `fun_get_yearly_end_date`(yearly_begin_date VARCHAR (20)) RETURNS VARCHAR(20) CHARSET utf8
BEGIN
RETURN (
DATE_ADD(
yearly_begin_date,
INTERVAL (
CASE
WHEN fun_get_yearly_day_count (yearly_begin_date) = 366
THEN 365
ELSE 364
END
) DAY
)
) ;
END$$
DELIMITER ;
这个函数依赖于fun_get_yearly_day_count ,见另一篇mysql-根据年度开始日获取年度天数