Причина, по которой вы получаете эту ошибку, скорее всего потому, что дата, из которой вы пытаетесь вычесть 1, приводит к тому, что результирующее значение становится меньше, чем минимальное значение для TSQL datetime .
Использование следующего теста:
CREATE TABLE answer
(
SentForApprovalAt DATETIME NULL,
ApprovedAT DATETIME,
ModifiedAT DATETIME
)
/* The query will work for this record */
INSERT
INTO Answer
(sentforapprovalat, approvedat, modifiedat)
VALUES (null, '1800-01-01 00:00:00.000', GETDATE())
/* The query will error with 'Adding a value to a 'datetime' column
caused an overflow.' for this record */
INSERT
INTO Answer
(sentforapprovalat, approvedat, modifiedat)
VALUES (null, '1753-01-01 01:00:00.000', GETDATE())