Я знаю, что есть другие сообщения с кодом, которые решают мою проблему, но я не хочу брать другой код, поэтому я пытаюсь сделать это сам, и я застрял с месяцем, не увеличивая проблемы, поэтому, если кто-нибудь может помочь мне с этой ошибкой, это будет потрясающе.Ошибка кода в SQL Server While-If Loop
Проблема заключается в том:
я должен заполнить временную таблицу с 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). – PhilS
О, я пропустил это. Позвольте мне исправить это. Спасибо :) Я не хочу, чтобы сообщество отлаживало мой код, я просто искал какой-то намек на то, что мне не хватает, вот и все. – RalphVB