[英]SQL: How to create a temp table and fill it with date within a select-from statement
I wish to create a temp table with 1 datetime column and then fill it with date(30 days before today). 我想用1个datetime列创建一个临时表,然后用date(今天之前30天)填充它。 I wish to do all these in a select-from statement. 我希望在select-from语句中完成所有这些操作。
I could do it with a "WITH" loop as below prior to the select-from statement. 在select-from语句之前,可以使用下面的“ WITH”循环来完成此操作。 However, I wish to do it within a select-from statement. 但是,我希望在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
Please help... :....( 请帮忙... :....(
You can use SELECT ... INTO
. 您可以使用SELECT ... INTO
。
BTW Your recursive CTE is invalid. BTW您的递归CTE无效。 A fixed version is below 固定版本如下
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
You could do: 您可以这样做:
CREATE TABLE #temptable
(
DateColumn DATETIME
)
INSERT INTO #temptable
SELECT dataDate FROM CTE_Table
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.