如何在2000年到2020年之间将所有日期和所有月份插入表格中?
问题描述:
我创建了一个在SQL Server 2008中称为time_range
与列如何在2000年到2020年之间将所有日期和所有月份插入表格中?
date ID, Month ID, year ID
我怎么能批量插入所有的日,月,年为这些列2000年至2020年的表?有没有简单的查询来做到这一点?
请提前帮助感谢。
来源:
1/1/2000 | January |2000
TO:
31/12/2020| December | 2020
答
您可以使用递归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
你可以用这个做插入到其他表
这似乎是你甚至不想尝试d o it ....请上传你到目前为止所做的... – etsa