怎么设置定时任务每月最后一天指定时间执行一次?
CREATE EVENT if not exists even_everyMonthLastDay_job
ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)
on completion preserve
do call f_now_member_money_total();
--上面是设置的是每月1号凌晨1点执行,当时未生效
求解答???
假设指定时间为 23:50:00 ,以下代码以此时间为例,你可以根据情况改变相应值。
DELIMITER $$
CREATE EVENT ISRSP
ON SCHEDULE
EVERY 1 MONTH //每隔一个月重复执行
STARTS '2017-04-30 23:50:00' //从四月份的最后一天指定时间开始
ON COMPLETION PRESERVE
DO
BEGIN
DECLARE rightnow DATETIME;
DECLARE hh,mm TINYINT;
SET rightnow = NOW();
SET hh = HOUR(rightnow);
SET mm = MINUTE(rightnow);
IF DATE(rightnow) = LAST_DAY(DATE(rightnow)) THEN
IF hh = 23 THEN
IF mm = 50 THEN
CALL IncidentsSummaryRecorder();
END IF;
END IF;
END IF;
END $$
DELIMITER ;