declare @interval int
set @interval = 5
select datepart(hh, DateTimeColumn)
, datepart(mi, DateTimeColumn)/@interval*@interval
, count(*)
from thetable
group by datepart(hh, DateTimeColumn)
, datepart(mi, DateTimeColumn)/@interval*@interval
He aqui una lista de valores generados para un intervalo de 5
minuto|dividido por 5|multiplicado por 5
0 | 0 | 0
1 | 0 | 0
...
5 | 1 | 5
6 | 1 | 5
...
10 | 2 | 10
11 | 2 | 10
...
Teniendo esto se pueden agregar mas campos al select, o hacer la presentacion del tiempo mas bonito, etc
declare @interval int
set @interval = 5
select convert(varchar(8), DTColumn, 1)+' '
+convert(varchar(2), datepart(hh, DTColumn))+':'
+convert(varchar(2), datepart(mi, DTColumn)/@interval*@interval)
, count(*)
from the_table
group by convert(varchar(8), DTColumn, 1)+' '
+convert(varchar(2), datepart(hh, DTColumn))+':'
+convert(varchar(2), datepart(mi, DTColumn)/@interval*@interval)
Esto nos da algo asi:
11/12/10 10:10 28
11/12/10 10:15 11
11/12/10 10:20 57
Espero le sea de utilidad a alguien