我希望创建一个包含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
请帮助......:....(
答案 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