Можете да използвате функцията DATEPART()
SELECT * FROM record
WHERE (DATEPART(yy, register_date) = 2009
AND DATEPART(mm, register_date) = 10
AND DATEPART(dd, register_date) = 10)
Намирам този начин за лесен за четене, тъй като игнорира компонента за време и не е нужно да използвате датата на следващия ден, за да ограничите избора си. Можете да преминете към по-голяма или по-малка детайлност, като добавите допълнителни клаузи, като използвате подходящия DatePart код, напр.
AND DATEPART(hh, register_date) = 12)
за да получите записи, направени между 12 и 1.
Консултирайте се с документите на MSDN DATEPART за пълния списък с валидни аргументи.