Si solo desea encontrar todos los registros donde se encuentra la fecha de recepción, y hay registros con futuras fechas de recepción, entonces lo que está haciendo es (muy ligeramente) incorrecto ... Porque el operador Between permite valores que son iguales al límite final, por lo que podría obtener registros con la fecha Recibido = hasta la medianoche de mañana ...
Si no hay necesidad de utilizar un índice en Recibido, entonces todo lo que necesita hacer es verificar que diff fecha con la fecha y hora actual es 0 ...
Where DateDiff(day, received, getdate()) = 0
Este predicado por supuesto no es sargable por lo que no puede utilizar un índice ... Si esto es un problema para esta consulta a continuación, suponiendo que no puede haber recibido las fechas en el futuro, me gustaría utilizar este lugar ...
Where Received >= DateAdd(day, DateDiff(Day, 0, getDate()), 0)
Si las fechas recibidos pueden ser en el futuro, entonces usted está probablemente tan cerca de los más eficientes como puede ser ... (excepto el cambio del Entre a un> = Y <)
Tenga en cuenta que la respuesta que seleccionó NO es la mejor forma de rendimiento.Su camino está cerca de la forma correcta, solo tiene que cambiar a> = y
ErikE