Это должно использовать индекс MyDateTimeCol в tblMessages
select * from dbo.tblMessages
WHERE
MyDateTimeCol >= DATEADD(day, DATEDIFF(day, 0, @Mydatetimeparameter), 0)
AND
MyDateTimeCol < DATEADD(day, DATEDIFF(day, 0, @Mydatetimeparameter), 1)
Любая функция, примененная к MyDateTimeCol, будет препятствовать правильному использованию индекса, включая DATEDIFF между этим и @ Mydatetime