CREATE FUNCTION `months_between`(`big_date` date,`small_date` date) RETURNS int(11)
BEGIN
declare diffMonth int;
declare diffYear int;
declare diffDay int;
declare number int;
select month(big_date)-month(small_date) ,day(big_date)-day(small_date) ,year(big_date)-year(small_date) into diffMonth,diffDay,diffYear;
if diffMonth > 0 and diffDay >= -1 then
set number=diffYear*12 + diffMonth;
elseif diffMonth > 0 and diffDay < -1 then
set number=diffYear*12 + diffMonth-1;
elseif diffMonth < 0 and diffDay > -1 then
set number=diffYear*12 - (month(small_date)-month(big_date))+1;
elseif diffMonth = 0 and diffDay >= -1 then
set number=diffYear*12 ;
else
set number = diffYear*12 - (month(small_date)-month(big_date));
end if;
return number;
END
版权声明:本文为weixin_28989357原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。