Sql 数据库日期:如何在表中自动增加日期?
我创建了一个名为DatesOfYear的数据库Sql 数据库日期:如何在表中自动增加日期?,sql,sql-server,Sql,Sql Server,我创建了一个名为DatesOfYear的数据库 CREATE TABLE DATESOFYEAR ( MyName varchar(15), MyDate date ); 我在其中插入了一个值 INSERT INTO DATESOFYEAR VALUES ('FName','1-JAN-2017'); 输出是 MYNAME MYDATE FName 1-JAN-2017 如何将MyDate从2017年1月1日增加到2017年12月31日,我希望看到的输出是
CREATE TABLE DATESOFYEAR
(
MyName varchar(15),
MyDate date
);
我在其中插入了一个值
INSERT INTO DATESOFYEAR VALUES ('FName','1-JAN-2017');
输出是
MYNAME MYDATE
FName 1-JAN-2017
如何将MyDate从2017年1月1日增加到2017年12月31日,我希望看到的输出是
MYNAME MYDATE
FName 1-JAN-2017
.... ....
FName 31-DEC-2017
一种选择:
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);
然后,如果愿意,您可以将该数据集插入另一个表中,或按原样使用。您可以循环并在数据库中添加行,直到年底。每次插入时,将上一个日期增加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;
您已经标记了SQL Server和MySQL。他们不是同一个人。您使用的是哪一个?谢谢,我已经更新了它。那么,您是否在寻求一种不为日期指定值并使其自动递增到下一个日期的方法?堆栈溢出上已经有大量的问题告诉您如何生成日期序列,您是否尝试过搜索?可能是重复的