Is it possible to write a Microsoft SQL query that will group by a datetime
data-type but ignoring the time part such as the hour and minute?
If you have a large table and want grouping to happen fast, you cannot rely grouping on an expression.
Create an additional datetime column on your table and have it filled by a trigger that calculates the base date from you "real" date:
UPDATE
MyTable
SET
EffectiveDate = DATEADD(DAY, 0, DATEDIFF(DAY, 0, t.RecordDate))
FROM
MyTable t
INNER JOIN inserted i ON i.RowID = t.RowID
Then put an index on EffectiveDate
and grouping (and searching) will be a lot faster.