SQL Server stores datetime data in 8 bytes. The first four bytes represent the date and the second four represent the time. To axe off the time part of the datetime, convert the datetime to a float, truncate the decimals, then convert back to a datetime. Converting directly to an integer will round up to the next day if the date is after 12PM.
select cast(round(cast(getdate() as float),0,1) as datetime)select count(*) from Sales where cast(round(cast(SaleCreateDate asfloat),0,1) as datetime) between '12/24/01' and '12/25/01'