Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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:如何在SELECTFROM语句中创建临时表并用日期填充它_Sql_Sql Server_Temp Tables - Fatal编程技术网

SQL:如何在SELECTFROM语句中创建临时表并用日期填充它

SQL:如何在SELECTFROM语句中创建临时表并用日期填充它,sql,sql-server,temp-tables,Sql,Sql Server,Temp Tables,我希望创建一个包含1个datetime列的临时表,然后在今天之前30天将其填充为datetime。我希望在select from语句中完成所有这些操作 declare @endDate datetime set @endDate = dateadd(day,-30,getdate()) with CTE_Table ( Select dataDate = dateadd(day,-1,getdate()) from CTE_Table where datediff(day,da

我希望创建一个包含1个datetime列的临时表,然后在今天之前30天将其填充为datetime。我希望在select from语句中完成所有这些操作

declare @endDate datetime
set @endDate = dateadd(day,-30,getdate())

with CTE_Table (
    Select dataDate = dateadd(day,-1,getdate()) from CTE_Table
    where datediff(day,dataDate,@endDate) < 0
)

select * from CTE_Table
在SELECTFROM语句之前,我可以使用如下所示的with循环来完成。但是,我希望在SELECTFROM语句中执行此操作

declare @endDate datetime
set @endDate = dateadd(day,-30,getdate())

with CTE_Table (
    Select dataDate = dateadd(day,-1,getdate()) from CTE_Table
    where datediff(day,dataDate,@endDate) < 0
)

select * from CTE_Table
请帮忙

你可以做:

CREATE TABLE #temptable
(
        DateColumn DATETIME
)

INSERT INTO #temptable
SELECT dataDate FROM CTE_Table
您可以使用选择。。。进入

顺便说一句,您的递归CTE无效。下面是一个固定版本

DECLARE @endDate DATETIME

SET @endDate = dateadd(day, -30, getdate());

WITH CTE_Table(dataDate)
     AS (SELECT  dateadd(day, -1, getdate())
         UNION ALL
         SELECT dateadd(day, -1, dataDate)
         FROM   CTE_Table
         WHERE  datediff(day, dataDate, @endDate) < 0)
SELECT dataDate
INTO   #T
FROM   CTE_Table 

谢谢你,达伦。我希望在temp表中完成所有这些操作,而不在DB.nicecode中创建任何实际表。如何将此日期表附加到数据库中的另一个表中