I am back in T-SQL fun and had interesting problem to solve – group rows by date and hour but eliminate minutes, seconds and milliseconds. Thus here is a handy function to do that:
DECLARE @Date datetime= getdate();
SELECT DATEADD(ms, -1*DATEPART(ms, @date), -- remove milliseconds
DATEADD(SECOND, -1*DATEPART(SECOND, @date), -- remove seconds
DATEADD(MINUTE, -1*DATEPART(MINUTE, @date), -- remove minutes
I hope you know how to create function from this code .