• --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;