Зависи колко голям е вашият период от време. Ако всички дати попадат в рамките на един месец, например, можете да направите това:
select day(timestamp) as Day, hour(timestamp) as Hour, count(*) as Count
from MyTable
where timestamp between :date1 and :date2
group by day(timestamp), hour(timestamp)
Можете също да групирате по година и месец, ако трябва допълнително да разделите данните си.