У меня есть следующий фрагмент кода, который даст мне дату за 1 месяц до указанной мной даты. Например, если я хотел получить дату за 1 месяц до 30.11.11, приведенный ниже код даст результат 2011/10/31
select CONVERT(DATETIME, DATEADD(d,-1,DATEADD(mm, DATEDIFF(m,0,'11-30-11'),0)), 102)
Как я могу изменить приведенный выше код, чтобы он возвращал дату за два месяца до указанной мной даты, чтобы он возвращал 2011/09/30, если я укажу '11 -30-11 'в коде?
Я не очень понимаю, как работает приведенный выше код? Я попытался изменить -1 на -2, но это только вычитает 1 день и 1 месяц, поэтому он вернется 2011/10/30 вместо 31.10. Мне нужно вернуть 2011/09/30, что на 2 месяца меньше даты в коде (11-30-11).