我在SQL Server 2008中创建了一个名为time_range
的表,其中包含
date ID, Month ID, year ID
如何从2000年到2020年将所有日期,月份,年份批量插入这些列?有没有简单的查询来做到这一点?
请提前帮助谢谢。
来自:
1/1/2000 | January |2000
TO:
31/12/2020| December | 2020
答案 0 :(得分:0)
您可以使用递归CTE执行此操作:
with cte (dateId)
as (
select cast('2000-01-01' as date)
union all
select dateadd(day, 1, dateId)
from cte
where dateId < cast('2020-12-31' as date)
)
select dateId,
datename(Month, dateId) as monthId,
year(dateId) as yearId
from cte
option (maxrecursion 0); -- to remove the recursion limit
您可以使用它来插入其他表