Bạn có thể làm điều này bằng cách trừ đi 5,5 giờ và tổng hợp vào ngày:
select date_add(date(timestamp - interval (5*60 + 30) minute), interval (5*60 + 30) minute) as interval_start,
date_add(date(timestamp - interval (5*60 + 30) minute), interval (24*60 + 5*60 + 30) minute) as interval_end,
count(*) as cnt
from t
group by date(timestamp - interval (5*60 + 30) minute)
order by interval_start;