Nu jag ser vad du är after.
förändra sig fungerar dbo. Fn_get_last_day (@FN_InputDtdatetime)
går int tillbaka
som
börja
gå fallet tillbaka när @FN_InputDt=0, därefter som 0 annan dag (dateadd (M, 1+datediff (M, 0, @FN_InputDt), 0) - 1) avslutar
avsluta
X = datediff (M, 0, @FN_InputDt) -- beräknar, hur många månader har förflutit från ”faktiskt daterar 0”,
Y = dateadd (M, 1+X, 0) -- tillfogar 1+X som månader till ”det faktiskt daterar 0”, så vi är i den nästa månaden (X+1)
Notera: biverkningen är att det också uppsättningen dag-i-månaden till den 1st dagen av månaden
Z = Y-1 -- ta en fridag, så vi är tillbaka i denna månad, på den sist dagen
Dag (Z) --- få dagen av månaden