Możesz użyć funkcji DATEPART()
SELECT * FROM record
WHERE (DATEPART(yy, register_date) = 2009
AND DATEPART(mm, register_date) = 10
AND DATEPART(dd, register_date) = 10)
Uważam, że ten sposób jest łatwy do odczytania, ponieważ ignoruje składnik czasu i nie musisz używać daty następnego dnia, aby ograniczyć wybór. Możesz przejść do większej lub mniejszej szczegółowości, dodając dodatkowe klauzule, używając odpowiedniego kodu DatePart, np.
AND DATEPART(hh, register_date) = 12)
aby uzyskać zapisy między 12 a 1.
Zapoznaj się z dokumentacją MSDN DATEPART, aby uzyskać pełną listę prawidłowych argumentów.