【发布时间】:2016-08-09 11:11:54
【问题描述】:
我知道还有其他帖子的代码可以解决我的问题,但我不想使用其他人的代码,所以我尝试自己做,但我遇到了一个月没有增加问题的问题,所以如果任何人都可以帮助我解决这个错误,这将是很棒的。
问题是:
我必须用所有的月份和日期填充从 1990 年到 2016 年的表格时间,我已经实现了代码可以正常工作并且它正确填充了年份和日期,但月份增加到一月 (1),然后是没有增加,所以表格中的所有月份都是一月(LOL)
这是我的代码:
create table Time
(
Year int,
Month int,
Day int
)
create procedure pTime
as
declare @year int, @month int, @day int;
set @year = 1990;
set @month = 12;
set @day = 10;
while(@year<=2016)
Begin
If(@day = 29)
Begin
set @month = @month + 1;
If(@month = 13)
Begin
set @month = 1;
set @day = 1;
set @year = @year + 1;
insert into Time values (@year, @month, @day);
End
End
else
Begin
If(@day = 29)
Begin
set @month = @month + 1;
set @day = 1;
insert into Time values (@year, @month, @day);
End
Else
Begin
insert into Time values (@year, @month, @day);
set @day = @day + 1;
End
End
End
知道我的错误或建议在哪里吗?
【问题讨论】:
-
“请调试我的代码”之类的问题在这里并不特别受欢迎。我认为您解决问题的方法不是很有效。我宁愿使用日期数据类型和 DateAdd 函数。 - 但是,当您想采用自己的方法时,请仔细研究一下 If(@year = 29) 条件。
-
哦,我错过了。让我纠正一下。谢谢 :) 我不希望社区调试我的代码,我只是在寻找我所缺少的一些提示,仅此而已。
标签: sql sql-server if-statement while-loop