SQL:如何在SELECTFROM语句中创建临时表并用日期填充它
我希望创建一个包含1个datetime列的临时表,然后在今天之前30天将其填充为datetime。我希望在select from语句中完成所有这些操作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
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中创建任何实际表。如何将此日期表附加到数据库中的另一个表中