В зависимости от объема выборки, может иметь смысл сделать через временную таблицу с unique index:
create temporary table tablename_uniq like tablename;
alter table tablename_uniq
add column record_date date,
add unique index (object_id, record_date);
insert ignore into tablename_uniq
select id, object_id, time, type_event, cast(time as date)
from tablename
/* where time between @range_start and @range_end */
order by time desc;
select id, object_id, time, type_event from tablename_uniq;
drop temporary table tablename_uniq;