我有一个包含365条记录的表,这个表也有一个空值的日期列。我想在所有行中插入日期,增加1天,当前日期。 例如:第1栏和第2栏中的当前日期应该是第二天等等......所有日期记录之间的差异应为24小时。
答案 0 :(得分:1)
您可以使用此更新查询:
UPDATE tbl SET Col2 = DATEADD(d, 1, Col1)
答案 1 :(得分:0)
带有光标的存储例程应该完成这项工作:
DELIMITER $$
DROP PROCEDURE IF EXISTS `insert_ascending_dates` $$
CREATE PROCEDURE `insert_ascending_dates`()
BEGIN
declare done int default false;
declare t_id int;
declare c cursor for select [id] from [table];
declare continue handler for not found set done = true;
set @dte = date();
set @strSql = 'update [table] set [date] = ? where [id] = ?';
prepare stmt from @strSql;
open c;
read_loop: loop
fetch c into t_id;
if done then
leave read_loop;
end if;
set @tId = t_id;
execute stmt using @dte, @tId;
set @dte = date_add(@dte, interval 1 day);
end loop;
close c;
deallocate prepare stmt;
END $$
DELIMITER ;
创建例程后,您需要按如下方式调用它:
call insert_ascending_dates();