If you do that, you are forcing it to do a string conversion. It would be better to build a start/end date range, and use:
declare @start datetime, @end datetime
select @start = '2009-10-10', @end = '2009-11-10'
select * from record where register_date >= @start
and register_date < @end
This will allow it to use the index (if there is one on register_date
), rather than a table scan.