SQLで特定期間の日付一覧作る等

前に上げた再帰結合をちょこっと変えただけ。
因みにSQLServer

DECLARE @from datetime = '2001-01-01';
DECLARE @to datetime = '2012-10-01';
WITH l_date(v_date) as (
    SELECT CONVERT(DATETIME,@from) v_date
    UNION ALL
    SELECT DATEADD(mm, 1, l.v_date) v_date
    FROM l_date l
    WHERE v_date < @to
)
SELECT v_date
FROM l_date

最近よく使うので残しとく。