--I've used something like this to generate date lists...
--First, you need a way to generate rows:
create function [dbo].[GenerateRows](@MaxRows int) returns table
as
return (
with N1( C) as (select 0 union all select 0) -- 2 rows
,N2( C) as (select 0 from N1 as T1 cross join N1 as T2) -- 4 rows
,N3( C) as (select 0 from N2 as T1 cross join N2 as T2) -- 16 rows
,N4( C) as (select 0 from N3 as T1 cross join N3 as T2) -- 256 rows
,N5( C) as (select 0 from N4 as T1 cross join N4 as T2) -- 65,536
,N6( C) as (select 0 from N3 as T1 cross join N5 as T2) -- 1,048,576
,N7( C) as (select 0 from N3 as T1 cross join N6 as T2) -- 16,777,216
,Rowz(RowNum) as (select row_number() over (order by (select null)) from N7)
select RowNum from Rowz
where RowNum <= @MaxRows);
GO
--Then you can use that to generate dates...
declare @firstDate date = '2018-01-01', @secondDate date= getdate();
select dateadd(dd, r.RowNum-1, @firstDate) as FillDate
from
GenerateRows(datediff(dd, @firstDate, @secondDate)) as r;