在表格中插入一段时间内的所有日期

Aft*_*low 7 sql sql-server

我有一个有两列(date_ID,entry_Date)的表.我想将特定时间段内的所有日期插入到表格中(比如说2002-2030之间的所有日期).有没有办法在SQL-Server中使用循环?

Igo*_*nko 6

试试这个

DECLARE @d date='20020101' 
WHILE @d<'20300101'
    BEGIN
        INSERT INTO dbo.Dates (entry_Date)
        VALUES (@d)
        SET @d=DATEADD(DAY,1,@d)
    END
GO
Run Code Online (Sandbox Code Playgroud)


McC*_*Cee 5

这应该可以做到:

WITH TestItOut AS
(
    SELECT CAST('2002-01-01' as datetime) DateColumn
    UNION ALL
    SELECT DateColumn + 1
    FROM TestItOut
    WHERE DateColumn + 1 <= '2030-12-31'
)

INSERT INTO YourTable (ColumnName)
SELECT DateColumn
FROM TestItOut
OPTION (MAXRECURSION 0)
Run Code Online (Sandbox Code Playgroud)