What I'll sometimes use as a poor man's tally table (we don't have one) is to combine ROW_NUMBER() and TOP from some existing table that has enough records to do what I want.
SELECT TOP 100000 ROW_NUMBER() OVER (ORDER BY KEY_COLUMN)
FROM SOME_TABLE
You can combine that with DATEADD in this situation. A hundred thousand days covers 273 years worth of days.
with TallyTable as (
-- Subtract 1 so you start counting from 0
select TOP 100000 ROW_NUMBER() OVER (ORDER BY KEY_COLUMN) - 1 as Row_Num
from SOME_TABLE
order by Row_Num
)
select dateadd(day,Row_Num,cast('1900-01-01' as date)) as Day
from TallyTable
This code sample covers all days from 1900-01-01 to 2173-10-15. Increase your TOP number if you need more.