Это то, что он делает. Вот еще один способ, который обрабатывает даты как номера, вместо того чтобы работать с функциями манипулирования датой:
DELETE FROM dbo.Table WHERE
CAST(CAST(exch_Date as float) as int) = CAST(CAST(getdate() as float) as int)
Примечание: Я первоначально имел это:
DELETE FROM dbo.Table WHERE
CAST(exch_Date as int) = CAST(getdate() as int)
Но Андрей отметил в комментариях, это округляется до следующего полудня, а не просто усекает дату до целого числа. Пройдя сначала через float-преобразование, целочисленное поведение ведет себя так, как ожидалось. Решение Андрея о вычитании 0,5 также отлично работает, хотя я предпочитаю немного более длинную версию с плавающей запятой, которая позволяет избежать любой потенциальной путаницы магического числа по дороге.
Вау, это отлично. Я обязательно буду использовать это в будущем! – Spooks