Questione : Funzione scalare di TSQL using prescelto all'interno della funzione & della data di esclusione

Chiedo scusa in anticipo per chiedere che cosa è probabile una domanda di base, problema sono che sono nuovo a SQL ed alle difficoltà avere con lo syntax.

I che scrivo questa funzione: dbo di funzione del

Alter.
(@d di Fn_get_last_day del datetime
del @d del
begin

declare del @d
as del datetime

Returns = caso stabiliti del =
del @d del @FN_InputDt

select quando il @FN_InputDt = 0 allora 0 else
seleziona il giorno (@Fn_InputDt) DatePart (d, @FN_InputDt) end

Return

End

Here del
sono gli errori restituiti: il
Msg 156, Livello 15, condizione 1, procedura FN_GET_LAST_DAY, linea sintassi di 16
incorrect vicino alla parola chiave “seleziona„.
Msg 102, Livello 15, condizione 1, procedura FN_GET_LAST_DAY, linea Br/>
del END'< della linea sintassi di sintassi di 16
Incorrrect vicino 'Br/>Msg 102, Livello 15, condizione 1, procedura FN_GET_LAST_DAY del D'<, di 21
Incorrect vicino ' class= del

Risposta : Funzione scalare di TSQL using prescelto all'interno della funzione & della data di esclusione

Ora vedo che cosa siete dopo.

alterare il dbo di funzione. Fn_get_last_day (datetime del @FN_InputDt)
restituisce il int
As
cominciare
restituire il caso quando @FN_InputDt=0 allora i 0 giorni altri (dateadd (m., 1+datediff (m., 0, @FN_InputDt), 0) - 1) estremità
estremità

X = datediff (m., 0, @FN_InputDt) -- calcola quanti mesi sono trascorso a partire “dalla data virtuale 0„
Y = dateadd (m., 1+X, 0) -- aggiunge i mesi 1+X “alla data virtuale 0„, in modo da siamo nel mese prossimo (X+1)
Nota: l'effetto secondario è che inoltre ha fissato il giorno-in-mese al primo giorno del mese
Z = Y-1  -- richiedere un giorno libero, in modo da siamo indietro in questo mese, all'ultimo giorno
Giorno (Z)   --- ottenere il giorno del mese
Altre soluzioni  
 
programming4us programming4us