A recursive CTE is a pretty easy method:
with dates as (
select effdate as dte, enddate
from t
union all
select dateadd(day, 1, dte), enddate
from dates
where dte < enddate
)
select dte
from dates
option (maxrecursion 0);
Often a tally table has somewhat better performance:
with digits as (
select v.n
from (values (0), (1), (2), (3), (4), (5), (6), (7), (8), (9)) v(n)
),
n as (
select (d1*1000 + d2*100 + d3*10 + d4*1) n
from digits d1 cross join
digits d2 cross join
digits d3 cross join
digits d4
)
select dateadd(day, n.n, t.effdate)
from t join
n
on dateadd(day, n.n, t.effdate) <= t.enddate ;
You have to be sure that your table of numbers -- however generated -- is big enough for your timespan.