Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何在表中插入2000年和2020年之间的所有日期和月份?_Sql Server 2008_Date_Sql Insert_Bulkinsert_Bulk - Fatal编程技术网

Sql server 2008 如何在表中插入2000年和2020年之间的所有日期和月份?

Sql server 2008 如何在表中插入2000年和2020年之间的所有日期和月份?,sql-server-2008,date,sql-insert,bulkinsert,bulk,Sql Server 2008,Date,Sql Insert,Bulkinsert,Bulk,我在SQLServer2008中创建了一个名为time_range的表,其中包含列 date ID, Month ID, year ID 如何将2000年到2020年的所有日期、月份、年份批量插入这些列?有什么简单的查询可以做到这一点吗 请帮忙,谢谢 发件人: 1/1/2000 | January |2000 致: 可以使用递归CTE执行以下操作: with cte (dateId) as ( select cast('2000-01-01' as date) unio

我在SQLServer2008中创建了一个名为time_range的表,其中包含列

date ID, Month ID, year ID
如何将2000年到2020年的所有日期、月份、年份批量插入这些列?有什么简单的查询可以做到这一点吗

请帮忙,谢谢

发件人:

1/1/2000  | January  |2000
致:


可以使用递归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

您可以使用此选项插入到其他表中

您可以使用递归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

你可以用它来插入其他表

似乎你根本不想尝试这样做。。。。请上传你到现在为止所做的事情…看起来你甚至都不想尝试去做。。。。请上传你到现在为止所做的…谢谢你的帮助。我是一个初学者,我对CTE不太了解。再次感谢您的帮助。此外,我在插入新表时遇到了问题操作数类型冲突:date与int不兼容,但我通过更改相应列的变量类型解决了问题,现在新表拥有了所有数据。当然:再次感谢。GurV感谢您的帮助帮助我是一个初学者,我对CTE不太了解。再次感谢您的帮助。此外,我在插入新表时遇到了问题操作数类型冲突:date与int不兼容,但我通过更改相应列的变量类型解决了问题,现在新表中有了所有数据。当然:再次感谢。