Я думаю, вы ищете функцию EOMONTH
что-то вроде этого может помочь вам решить вашу проблему
DECLARE @date VARCHAR(10) = '02/28/2019'
SELECT CASE WHEN (EOMONTH(@date) = FORMAT(CAST(@date AS DATETIME),'yyyy-MM-dd'))
THEN EOMONTH(DATEADD(month,1,@date))
ELSE DATEADD(month,1,@date)
END
Примечание: Я использовал функцию форматирования, потому что EOMONTHвозвращает дату в формате 'гггг-мм-дд'
ОБНОВЛЕНИЕ
DECLARE @dates TABLE
(
FromDate DATETIME,
ToDate DATETIME
)
INSERT INTO @dates (FromDate)
VALUES('12/31/2017'),('1/31/2018'),('2/28/2018'),('3/31/2018')
select * from @dates
UPDATE @dates
SET ToDate =CASE WHEN (EOMONTH(FromDate) = FORMAT(CAST(FromDate AS DATETIME),'yyyy-MM-dd'))
THEN EOMONTH(DATEADD(month,1,FromDate))
ELSE DATEADD(month,1,FromDate)
END
SELECT * FROM @dates
Запустите это, и вы увидите окончательный вывод