
展开全部
drop procedure if exists test;
create procedure test(in start datetime)
begin
drop table if exists tmp;
create TEMPORARY table tmp (date datetime);
set @stop=date_add(start,INTERVAL -7 day);
while start >= @stop DO
insert into tmp values(start);
set start=date_add(start,interval -1 day);
end while;
select * from tmp;
end;
这个是需要循环的,以上帮你写了一个存储过程,创建后,执行call test('2016-01-08'),可以帮你列出你所需的答案。
create procedure test(in start datetime)
begin
drop table if exists tmp;
create TEMPORARY table tmp (date datetime);
set @stop=date_add(start,INTERVAL -7 day);
while start >= @stop DO
insert into tmp values(start);
set start=date_add(start,interval -1 day);
end while;
select * from tmp;
end;
这个是需要循环的,以上帮你写了一个存储过程,创建后,执行call test('2016-01-08'),可以帮你列出你所需的答案。
追问
参数 2个 ,一个stat 一个end ,也就是 这两个时间 是输入的不是固定的
追答
不是固定的,通过你执行call的时候会根据你输入的值来进行计算,如果你想查询显示30天的,可以将‘INTERVAL -7’修改为‘INTERVAL -30’
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询