Теперь я вижу вы поже.
измените dbo функции. Fn_get_last_day (datetime @FN_InputDt)
возвращает int
как
начните
возвратите случай когда @FN_InputDt=0 после этого 0 других дней (dateadd (m, 1+datediff (m, 0, @FN_InputDt), 0) - 1) конец
конец
X = datediff (m, 0, @FN_InputDt) -- высчитывает сколько месяцы истекали от «фактически даты 0»
Y = dateadd (m, 1+X, 0) -- добавляет месяцы 1+X к «фактически дате 0», поэтому мы находимся в следующем месяце (X+1)
Примечание: побочный эффект что он также установил дн-в-месяц к 1-ому дню месяца
Z = Y-1 -- примите один выходной день, поэтому мы находимся назад в этом месяце, на последнем дне
День (z) --- получите день месяца