Я не уверен, какой у вас вопрос.До сих пор я понял, что вам нужна последняя дата месяца в случае, если при добавлении двух дней к A_Date
переходам к следующему месяцу.
Почему бы вам не использовать CASE WHEN
и сравнитьМесяцы, вот так:
DECLARE @A_Date date = '2019/09/30';
DECLARE @A_Date_Month int = 0;
DECLARE @E_Date_Month int = 0;
SELECT @A_Date_Month = Month(Cast(@A_Date AS datetime));
SELECT @E_Date_Month = Month(DATEADD(day, 2, @A_Date));
SELECT CASE
WHEN @A_Date_Month = @E_Date_Month
THEN DATEADD(day, 2, @A_Date)
ELSE EOMONTH(@A_Date) END AS OUTPUTValue
Попробуйте описанный выше набор и дайте мне знать, если он решит вашу проблему!