需求
需要將一個(gè)時(shí)間段的天數(shù)全部遍歷
了解While函數(shù), dateadd()函數(shù)
While{...}
WHILE condition
BEGIN
{...statements...}
END;
當(dāng)condition滿足的時(shí)候,一直執(zhí)行statements
DATEADD(interval, number, date)
-
interval
新增的單位時(shí)間,如年(year),月(month),日(day) -
number
新增的數(shù)量級(jí) -
date
初始時(shí)間
實(shí)現(xiàn)
declare @beg varchar(20),@end varchar(20)
select @beg = '2016-11-01',@end = '2016-11-15'
declare @begDate datetime = cast(@beg as datetime),@endDate datetime = cast(@end as datetime)
if DATEDIFF(DAY,@begDate,@endDate) < 0
begin
print '結(jié)束時(shí)間小于開(kāi)始時(shí)間'
return;
end
DECLARE @newDate datetime
select @newDate = dateadd(day,0,@begDate)
WHILE (DATEDIFF(DAY,@newDate,@endDate) >=0 )
begin
print convert(varchar(20),@newDate,120)
select @newDate = dateadd(day,1,@newDate)
end
F72917DC-6597-42DD-8227-5EC26EF8D7CF.png