Jetzt sehe ich, was Sie nachher sind.
Funktion dbo ändern. Fn_get_last_day (@FN_InputDt Datum/Uhrzeit)
bringt int zurück
wie
anfangen
Fall zurückbringen wenn @FN_InputDt=0 dann 0 sonst Tag (dateadd (m, 1+datediff (m, 0, @FN_InputDt), 0) - 1) Ende
Ende
X = datediff (m, 0, @FN_InputDt) -- berechnet, wieviele Monate sind abgelaufen von „virtuellem Datum 0“
Y = dateadd (m, 1+X, 0) -- fügt Monate 1+X dem „virtuellen Datum 0“ hinzu, also sind wir im nächsten Monat (X+1)
Anmerkung: die Nebenwirkung ist, dass sie auch den Tag-inmonat auf 1. Tag des Monats einstellte
Z = Y-1 -- einen freien Tag nehmen, also sind wir zurück in diesem Monat, am letzten Tag
Tag (Z) --- den Tag des Monats erhalten