Sql Server 循环查7天数据
语法
DECLARE
@date_start datetime = '2018-04-30 00:00:00', --定义开始时间
@date_end datetime = '2018-08-30 23:59:59', --定义结束时间
@date_flag datetime = '2018-04-30 00:00:00', --定义一个标识时间
@flag int = 0, --定义一个数 用来做条件
@num int = 0 --定义一个数用作和
if object_id('tempdb.dbo.#tb1') is not null
drop table #tb1 --删除临时表
create table #tb1(num int,dt datetime) --创建虚拟表
WHILE @date_flag<=@date_end --时间条件
BEGIN
if @flag < 7
BEGIN
SET @flag = @flag + 1 --累加flag
END
else
BEGIN
SET @flag = 0 --7天置为0 重新累加
SET @date_flag = DATEADD(DAY,7,@date_flag) --标识时间加7天
SET @num = (SELECT count(0) as C FROM [Tb] WHERE [Createdate] > @date_start AND [Createdate] < @date_flag) --赋值num
INSERT INTO #tb1 values (@num,@date_flag) --插入虚拟表
END
END
select * from #tb1; --查询结果集