如何在2000年到2020年之间的所有日期和所有月份插入表格?

时间:2017-03-24 08:31:40

标签: sql-server-2008 date sql-insert bulkinsert bulk

我在SQL Server 2008中创建了一个名为time_range的表,其中包含

date ID, Month ID, year ID

如何从2000年到2020年将所有日期,月份,年份批量插入这些列?有没有简单的查询来做到这一点?

请提前帮助谢谢。

来自:

1/1/2000  | January  |2000

TO:

31/12/2020| December | 2020

1 个答案:

答案 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

您可以使用它来插入其他表