This function takes a date and a date part parameter and rounds the date down to the nearest date part.
Example:
In order to round '2010-11-03 17:44:10.117' to the nearest hour ('2010-11-03 17:00:00.000')
select dbo.datefloor(cast('2010-11-03 17:44:10.117' as datetime),'hh')
This function is helpful when aggregating dates by a date part (hour, day, etc).
See also: DateCeiling Function