У меня есть таблица в SQL Server 2005, которая имеет три столбца:
id (int),
message (text),
timestamp (datetime)
Существует индекс для отметки времени и идентификатора.
Я заинтересован в выполнении запроса, который извлекает все сообщения за определенную дату, скажем, «12/20/2008». Однако я знаю, что простое выполнение, где timestamp = '12 / 20/2008 'не даст мне правильный результат, потому что это поле даты и времени.
Кто-то рекомендовал использовать функцию DATEPART и вытащить год, месяц и день из отметки времени и убедиться, что они равны 2008, 12 и 20 соответственно. Похоже, что это не будет использовать индекс, который у меня есть на отметке времени, и закончится полным сканированием таблицы.
Итак, каков наилучший способ построения моего запроса, чтобы я использовал созданный мной индекс?