Frage : TSQL Skalarfunktion using auserwähltes innerhalb der Funktion u. des ausschließen Datums

Ich entschuldige mich im Voraus für das Bitten, um um was eine grundlegende Frage wahrscheinlich ist, Problem bin, dass ich zu SQL und zu den Habenschwierigkeiten mit dem syntax.

I morgens diese Funktion schreibend neu bin:

Alter Funktion dbo. Fn_get_last_day
(@FN_InputDt datetime

Returns @d
as
begin

declare @d datetime
gesetztes @d = @FN_InputDt

select @d =
Fall, wenn @FN_InputDt = 0 dann 0 else
Tag (@Fn_InputDt) DatePart (d, @FN_InputDt) vorwählen
end

Return

End

Here die zurückgebrachten Störungen:
Msg 156, Niveau 15, Zustand 1, Verfahren FN_GET_LAST_DAY, Linie 16
incorrect Syntax nahe dem Schlüsselwort „wählen“ vor.
Msg 102, Niveau 15, Zustand 1, Verfahren FN_GET_LAST_DAY, Linie 16
Incorrrect Br/>
END'< Linie 21
Incorrect Syntax der Syntax nahe 'D'< Br/>Msg 102, Niveau 15, Zustand 1, Verfahren FN_GET_LAST_DAY, nahe '

Antwort : TSQL Skalarfunktion using auserwähltes innerhalb der Funktion u. des ausschließen Datums

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
Weitere Lösungen  
 
programming4us programming4us