Удаление записей с датой старше 3 дней для работы на 3 дня? - PullRequest
6 голосов
/ 03 января 2011

Перед выполнением чувствительной команды sql я хотел проверить работоспособность.

Я пытаюсь удалить записи с датой [LoadDt] старше 3 дней, и мой код:

delete IntraDayStats
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3 

Я хочу запланировать это как задание sql, чтобы у моей таблицы IntraDayStats была скользящая трехдневная история. Работа будет выполняться ночью.

1 Ответ

9 голосов
/ 03 января 2011
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3 

не может быть sargable (индекс не будет использоваться), используйте

where LoadDt < getdate()- 3 

В следующий раз, если вы хотите проверить, введите DELETE a SELECT и посмотрите, что вывернись

...