Du kan använda funktionen DATEPART()
SELECT * FROM record
WHERE (DATEPART(yy, register_date) = 2009
AND DATEPART(mm, register_date) = 10
AND DATEPART(dd, register_date) = 10)
Jag tycker att det här sättet är lätt att läsa, eftersom det ignorerar tidskomponenten, och du behöver inte använda nästa dags datum för att begränsa ditt val. Du kan gå till större eller mindre granularitet genom att lägga till extra satser, med lämplig DatePart-kod, t.ex.
AND DATEPART(hh, register_date) = 12)
för att få poster gjorda mellan 12 och 1.
Se MSDN DATEPART-dokumentationen för hela listan över giltiga argument.