2013-06-18 54 views
0

我希望創建一個包含1個datetime列的臨時表,然後用日期(今天之前30天)填充它。我希望在select-from語句中做所有這些。SQL:如何創建臨時表並在select-from語句中填入日期

我可以在select-from語句之前用下面的「WITH」循環來做到這一點。但是,我希望在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 

請幫助...:....(

回答

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 
0

你可以這樣做:。

CREATE TABLE #temptable 
(
     DateColumn DATETIME 
) 

INSERT INTO #temptable 
SELECT dataDate FROM CTE_Table 
+0

欣賞達爾仁。我希望在臨時表中完成所有這些操作,而無需在數據庫中創建任何實際表格。 – Chappy

相關問題