Your scenario isn't entirely clear to me.
You do not explain what the value @UserInputDt has to do with @para (=2014-02-01).
Why is the result for Begfiscal 2013-02-01 and for Endfiscal 2012-01-31?
Wouldn't it be easier to use datetime functions (such as dateadd) instead of manipulating strings?
Need an answer? No, you need a question
My blog at https://sqlkover.com.
MCSE Business Intelligence - Microsoft Data Platform MVP