Я снова здесь, чтобы помочь. Это то, что я пытаюсь сделать. У меня есть функция или SP, который принимает 3 параметра. startdate, enddate,
и dayofweek
(m, t, w и т. Д.) Необходимо подсчитать, сколько недель проходит между начальной и конечной датой.
Например, если я передам startday=2011-05-02
, enddate=2011-05-10
и dayofweek
как вторник, он должен засчитать 2, если я передам dayofweek
как среду, то он должен подсчитать 1.
Я могу работать с этим кодом, есть ли лучший способ сделать это? ClosingStartDate
корректируется на правильную дату начала на основе используемого dayofweek
. Таким образом, в основном код добавляет 1 неделю к runningdate
, и текущая дата корректируется в зависимости от используемой недели.
Любой другой способ сделать это без while.loop. ???
declare @NoofPeriods int
declare @runningdate datetime
set @runningdate = @ClosingStartDate
set @NoofPeriods=0
while (@runningdate <= @NextStatementClosingdate)
begin
set @NoofPeriods=@NoofPeriods+1
set @runningdate = Dateadd(day,7,@runningdate)
end