Поле даты и времени включает в себя как дату, так и время, точную до миллисекунды. Ваш запрос будет работать только в том случае, если он является точной миллисекундой, хранящейся в базе данных.
Чтобы проверить это сегодня, но игнорировать время дня, вы можете проверить диапазон, как это:
select * from table where
DateCreated >= '2009-12-30' and
DateCreated < '2009-12-31'
Вы можете использовать это в сочетании с функцией, которая преобразует текущую дату, а наблюдатель или Хилон. Вот полный пример, на котором можно ответить на вопрос. Кроме того, как указывает Крейг Янг, это будет работать с индексами.
select * from table where
DateCreated >= DATEDIFF(dd,0,GETDATE()) and
DateCreated < DATEDIFF(dd,0,GETDATE())
Питер Ди Чекко является лучшим вариантом, это позволяет использовать индексы. –
Можете ли вы пометить версию SQL Server, которую вы используете, поскольку SQL 2008 имеет тип DATE, который вы можете использовать. Спасибо –