DECLARE dtCur CURSOR FOR SELECT rate,update_dt FROM rate_t WHERE update_dt > `st` AND update_dt< DATE_ADD(`et`, INTERVAL '23:59:59' HOUR_SECOND) ORDER BY update_dt ASC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET `nomore` = 1;
上面的通过`nomore` = 1结束游标循环的方式碰到其中有SELECT的情况不适用,游标会在第一个SELECT执行之后关闭
下面的方式可以使用select
SELECT COUNT(*) INTO @dtCount FROM rate_t WHERE update_dt > `st` AND update_dt< DATE_ADD(`et`, INTERVAL '23:59:59' HOUR_SECOND); SET @dtNum = 0; OPEN dtCur; WHILE @dtNum