Sie könnten die Funktion DATEPART() verwenden
SELECT * FROM record
WHERE (DATEPART(yy, register_date) = 2009
AND DATEPART(mm, register_date) = 10
AND DATEPART(dd, register_date) = 10)
Ich finde diesen Weg einfach zu lesen, da er die Zeitkomponente ignoriert und Sie nicht das Datum des nächsten Tages verwenden müssen, um Ihre Auswahl einzuschränken. Sie können zu einer größeren oder geringeren Granularität gehen, indem Sie zusätzliche Klauseln hinzufügen, indem Sie den entsprechenden DatePart-Code verwenden, z. B.
AND DATEPART(hh, register_date) = 12)
um Aufzeichnungen zu erhalten, die zwischen 12 und 1 gemacht wurden.
Die vollständige Liste gültiger Argumente finden Sie in der MSDN DATEPART-Dokumentation.