Ich bin wieder hier, um Hilfe zu bekommen. Dies ist, was ich zu tun versuche. Ich habe eine Funktion oder sp, die 3 Parameter nimmt. startdate, enddate,
y dayofweek
(m, t, w usw.), müssen Sie zählen, wie viele Wochen zwischen dem Anfangs- und dem Enddatum liegen.
Beispiel: Wenn ich startday=2011-05-02
, enddate=2011-05-10
y dayofweek
als Dienstag, es sollte 2 zählen, wenn ich passe dayofweek
als Mittwoch, dann sollte es 1 zählen.
Ich bin in der Lage, mit diesem Code zu arbeiten, gibt es eine bessere Möglichkeit, dies zu tun? Die ClosingStartDate
auf das korrekte Startdatum angepasst, das auf dem dayofweek
verwendet. Im Grunde fügt der Code also 1 Woche zur runningdate
und das laufende Datum wird entsprechend der verwendeten Woche angepasst.
Gibt es eine andere Möglichkeit, dies ohne die while-Schleife zu tun?
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