Date Dimension gives date one day later than start date

I suspect the behavior has to do with the join conditions on the inner query. But, you have not shown those join conditions (table1 T1 INNER JOIN table2 T2 ON ????)