MYSQL - date_add(datex,interval cpt day)

时间:2014-03-19 01:20:52

标签: mysql

我要做的是在语句

中设置值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&gt;&gt;&gt; DATE_SUB(date2,INTERVAL 0天) val = 1&gt;&gt;&gt; DATE_SUB(date2,INTERVAL 1 DAY)

感谢您阅读

1 个答案:

答案 0 :(得分:0)

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