Я столкнулся с этой проблемой и сегодня провожу много времени. Итак, я подумал поделиться им здесь:
У меня есть таблица, в которой мы храним debitDate , и у нас есть хранимая процедура, где каждый месяц мы устанавливаем дату дебетования на следующий месяц в таблице.
Итак, если его дата дебетования 29th Jan, 2020 -> 29th Feb, 2020 -> 29th March, 2020
- значит, должно быть go вот так. Я использую функцию DATEADD () в хранимой процедуре.
Но на 30-м и 31-м я столкнулся с проблемой. В ближайшие годы он должен работать, как показано ниже:
Желаемое поведение :
30th Jan, 2020 -> 29th Feb, 2020 -> 30th Mar, 2020 -> 30th Apr, 2020
30th Jan, 2021 -> 28th Feb, 2021 -> 30th Mar, 2021 -> 30th Apr, 2021
31st Jan, 2020 -> 29th Feb, 2020 -> 31st Mar, 2020 -> 30th Apr, 2020
Проблема :
30th Jan, 2020 -> 29th Feb, 2020 -> 29th Mar, 2020 -> 29th Apr, 2020
30th Jan, 2021 -> 28th Feb, 2021 -> 28th Mar, 2021 -> 28th Apr, 2021
31st Jan, 2020 -> 29th Feb, 2020 -> 29th Mar, 2020 -> 29th Apr, 2020