SQL

DECLARE
    @開始日 datetime,
    @終了日 datetime;

SET @開始日 = CONVERT(datetime, '2017-06-01');
SET @終了日 = CONVERT(datetime, '2017-06-30');

WITH カレンダー AS (
     SELECT @開始日 AS 日付
     UNION ALL
     SELECT DATEADD(day, 1, 日付)
     FROM カレンダー
     WHERE カレンダー.日付 < @終了日
)
SELECT カレンダー.日付
FROM カレンダー;

結果

日付
2017-06-01 00:00:00.000
2017-06-02 00:00:00.000
2017-06-03 00:00:00.000
2017-06-04 00:00:00.000
2017-06-05 00:00:00.000
2017-06-06 00:00:00.000
2017-06-07 00:00:00.000
2017-06-08 00:00:00.000
2017-06-09 00:00:00.000
2017-06-10 00:00:00.000
2017-06-11 00:00:00.000
2017-06-12 00:00:00.000
2017-06-13 00:00:00.000
2017-06-14 00:00:00.000
2017-06-15 00:00:00.000
2017-06-16 00:00:00.000
2017-06-17 00:00:00.000
2017-06-18 00:00:00.000
2017-06-19 00:00:00.000
2017-06-20 00:00:00.000
2017-06-21 00:00:00.000
2017-06-22 00:00:00.000
2017-06-23 00:00:00.000
2017-06-24 00:00:00.000
2017-06-25 00:00:00.000
2017-06-26 00:00:00.000
2017-06-27 00:00:00.000
2017-06-28 00:00:00.000
2017-06-29 00:00:00.000
2017-06-30 00:00:00.000

Reference

「SQL Serverで期間内の日付を取得するには?」(2) Database Expert - @IT