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

时间:2013-06-18 09:24:06

标签: sql sql-server temp-tables

我希望创建一个包含1个日期时间列的临时表,然后将其填入日期(今天前30天)。我希望在select-from语句中完成所有这些。

我可以用" WITH"在select-from语句之前循环如下。但是,我希望在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

请帮助......:....(

2 个答案:

答案 0 :(得分:1)

您可以使用SELECT ... INTO

BTW您的递归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 

答案 1 :(得分:0)

你可以这样做:

CREATE TABLE #temptable
(
        DateColumn DATETIME
)

INSERT INTO #temptable
SELECT dataDate FROM CTE_Table