Для лучшего использования индексов я бы пошел на такой подход:
Чтобы удалить все записи за 1 декабря:
DECLARE @DateToDelete DATETIME
SET @DateToDelete = '20091201'
DELETE FROM MyTable
WHERE MyDateField >= @DateToDelete AND MyDateField < DATEADD(dd, 1, @DateToDelete)
Альтернативы включают в себя:
DELETE FROM MyTable
WHERE CAST(CONVERT(VARCHAR(10), MyDateField, 120) AS DATETIME) = @DateToDelete
, который преобразует каждое значение даты и времени в его часть даты.
Но я бы все-таки пошел своим первоначальным путем, поскольку он позволяет более эффективно выполнять.