Если вы используете SQL Server 2008, лучшим решением на сегодняшний день является CAST на сегодняшний день, который по-прежнему является SARGable (может использовать индекс)
DELETE db.table
where CAST(exch_Date as Date) = DATEDIFF(dd,0,GETDATE())
Часть DateAdd to 0
является избыточным (посторонним) кодом.
До выпуска SQL Server 2008 было бы лучше по соображениям производительности всегда проверять столбец даты / времени с диапазоном, чем использовать для него функцию, приводящую к сканированию таблицы.
DELETE db.table
where exch_Date >= DATEDIFF(dd,0,GETDATE())
and exch_Date < DATEDIFF(dd,0,GETDATE()) +1