Я могу продублировать ошибку следующим образом:
declare @posting_date datetime
set @posting_date = '1/1/1753'
select DATEADD(day, -1 , DATEADD(mm, DATEDIFF(mm,0,@posting_date),0))
ошибка после запуска:
Сообщение 517, уровень 16, состояние 1, строка 3 Добавление значения кстолбец «datetime» вызвал переполнение.
По сути, posting_date в приведенном выше случае - это минимальное значение даты и времени, разрешенное SQL-сервером.Если затем попытаться вычесть из него 1 день, то он входит в условие переполнения.
Я предполагаю, что у вас есть точка данных, для которой установлено минимальное значение даты SQL Server .