подскажите, куда порыться
declare @v_start_date date = {d '2017-01-01'}; declare @v_end_date date = {d '2017-01-02'}; with first_tree (vDate) as ( -- Все дни периода через рекурсию select cast(cast(@v_start_date as date) as datetime) vDate union all select dateadd(hour, 12, vDate) vDate from first_tree where vDate < cast(cast(@v_end_date as date) as datetime) ) select vDate CalendarDate, datename(dw, vDate) DayOfWeekName, (datepart(dw, vDate) + @@datefirst - 1) % 7 + 1 day_of_week_number from first_tree OPTION (MAXRECURSION 10) работает ; with first_tree (vDate) as ( -- Все дни периода через рекурсию select cast(cast(@v_start_date as date) as datetime) vDate union all select dateadd(hour, 12, vDate) vDate from first_tree where vDate < cast(cast(@v_end_date as date) as datetime) ), days_tree as ( select vDate CalendarDate, datename(dw, vDate) DayOfWeekName, (datepart(dw, vDate) + @@datefirst - 1) % 7 + 1 day_of_week_number from first_tree OPTION (MAXRECURSION 10) НЕ работает ) SELECT * FROM days_tree;