2016-02-22 98 views
1

我想創建一個表格,其中包含一列,並且列是從2015年1月1日到2015年底的每週日期。是否有一個簡單如何做到這一點?SQL - 創建表格,其中包含日期爲一週的列

CREATE TABLE Week_End_Dates 
(
WeekEndDt date 
); 

INSERT INTO Week_End_Dates(WeekEndDt) 
VALUES ('2015-01-01'),('2015-01-08') 

回答

2

有很多的方法來產生一個日期序列。一種是使用公用表表達式是這樣的:

WITH CTE (DT) AS 
(
    SELECT CAST('2015-01-01' AS DATE) DT 
    UNION ALL 
    SELECT DATEADD(WEEK, 1, DT) 
    FROM CTE 
    WHERE DATEADD(WEEK, 1, DT) < '2016-01-01' 
) 
INSERT INTO Week_End_Dates(WeekEndDt) 
SELECT * FROM CTE 

這不是最有效的(並且可以很容易地在幾個方面進行優化),但它應該做你似乎什麼希望。

查詢會產生這樣的結果:

WeekEndDt 
2015-01-01 
2015-01-08 
2015-01-15 
2015-01-22 
2015-01-29 
... etc until 2015-12-31 
相關問題