Если вы просто хотите найти все записи с датой получения сегодня и есть записи с датами получения в будущем, то то, что вы делаете, (очень и очень немного) неверно ... Поскольку оператор Between допускает значения которые равны конечной границе, поэтому вы можете получить записи с Полученной датой = до полуночи завтра ...
Если нет необходимости использовать индекс для Received, все, что вам нужно сделать, это проверить, что разность дат с текущим datetime равна 0 ...
Where DateDiff(day, received, getdate()) = 0
Этот предикат, конечно, не SARGable, поэтому он не может использовать индекс ...
Если это проблема для этого запроса, то при условии, что у вас не будет дат получения в будущем, я бы использовал это вместо ...
Where Received >= DateAdd(day, DateDiff(Day, 0, getDate()), 0)
Если полученные даты могут быть в будущем, то вы, вероятно, настолько близки к наиболее эффективным, насколько это возможно ... (За исключением изменения параметра Между на> = И <) </p>