我创建了一个名为DatesOfYear的数据库
CREATE TABLE DATESOFYEAR
(
MyName varchar(15),
MyDate date
);
我在其中插入了一个值
INSERT INTO DATESOFYEAR VALUES ('FName','1-JAN-2017');
输出
MYNAME MYDATE
FName 1-JAN-2017
如何将MyDate
从1-JAN-2017
增加到年末31-DEC-2017
,我希望看到的输出是
MYNAME MYDATE
FName 1-JAN-2017
.... ....
FName 31-DEC-2017
答案 0 :(得分:0)
一个选项:
DECLARE @StartDate date, @EndDate Date;
SELECT @StartDate = '20170101', @EndDate = '20171231';
WITH Dates AS(
SELECT @StartDate AS MyDate
UNION ALL
SELECT DATEADD(DAY, 1,MyDate)
FROM Dates
WHERE DATEADD(DAY, 1,MyDate) <= @EndDate)
SELECT *
FROM Dates
OPTION (MAXRECURSION 366);
如果您愿意,您可以INSERT
将该数据集放入另一个表中,或按原样使用它。
答案 1 :(得分:0)
您可以创建一个循环并在数据库中添加行,直到您到达年底。在每个插入上,将前一个日期增加1天。
DECLARE @my_previous_date DATE = '1-JAN-2017',
@my_date DATE = DATEADD(d,1, @my_previous_date);
WHILE @my_date <= '31-DEC-2017'
BEGIN
INSERT INTO DATESOFYEAR VALUES ('FName', DATEADD(d,1, @my_date));
@my_date = DATEADD(d,1, @my_date);
END;