Posso duplicare l'errore con quanto segue:
declare @posting_date datetime
set @posting_date = '1/1/1753'
select DATEADD(day, -1 , DATEADD(mm, DATEDIFF(mm,0,@posting_date),0))
errore dopo averlo eseguito:
Fondamentalmente, posting_date nel caso precedente è il valore minimo di data e ora consentito dal server SQL. Se poi provi a sottrarre 1 giorno da esso, entra in una condizione di overflow.
La mia ipotesi è che tu abbia un punto dati impostato su Valore di data minimo di SQL Server .