SQLServerで日付範囲から日ごと、または月ごとに年月日(月ごとの場合、日は1日)を作成するサンプル
--月ごとに年月日(日は1日)を抽出
WITH MonthTable(YearMonth) AS (
SELECT
CONVERT(DATETIME, '2016/12/01')
UNION ALL
SELECT
DATEADD(m, 1, YearMonth)
FROM
MonthTable
WHERE
YearMonth < CONVERT(DATETIME, '2017/03/01')
)
SELECT
YearMonth
FROM
MonthTable
--日ごとに年月日を抽出
WITH DateTable(MyDate) AS (
SELECT
CONVERT(DATETIME, '2017/01/01')
UNION ALL
SELECT
DATEADD(d, 1, MyDate)
FROM
DateTable
WHERE
MyDate < CONVERT(DATETIME, '2017/01/31')
)
SELECT
MyDate
FROM
DateTable