首页 文章

MYSQL - date_add(datex,interval cpt day)

提问于
浏览
2

我想要做的是在语句中设置值cpt

DATE_ADD(firstqDate,INTERVAL @val DAY)

让每个循环扫描成为一个新的日期 .

此声明是来自库存过程的一行,其中2个值取决于日期和之前的日期 . 这是库存程序:

DROP PROCEDURE IF EXISTS updating_all_qch; 
DELIMITER $$
CREATE PROCEDURE updating_all_qCh() 
BEGIN

DECLARE firstqDate,date2 date;
DECLARE p, c float;
DECLARE cpt, val int;
set val = 0;
select count(*) into cpt from quotes;
SET @firstqDate = (select qDate from quotes ORDER BY YEAR(qDate) ASC, MONTH(qDate) ASC, DAY(qDate) ASC limit 1,1);
WHILE val <= cpt DO
SET date2 = (select qDate from quotes where qDate like DATE_ADD(firstqDate, INTERVAL @val DAY );
SET p = (select qOp from quotes where qDate date2
SET c = (select qCl from quotes where qDate like DATE_SUB(date2, INTERVAL 1 DAY));
update quotes
set qCh = (p * (100/c) ) / 100;
set val = val + 1;
end while;
END$$

我不知道为什么,但mysql在第11行引发错误 .

我的问题:有没有办法在函数date_add的值区间设置一个cpt来得到类似val = 0 >>> DATE_SUB(date2,INTERVAL 0 DAY)val = 1 >>> DATE_SUB(date2,INTERVAL 1 DAY) )

谢谢你的阅读

1 回答

  • 0

    我认为你需要在DATE前面使用Date函数)ADD如下,SET date2 =(从引号中选择qDate,其中qDate就像date(DATE_ADD(firstqDate,INTERVAL @val DAY));

相关问题