Você pode
group by
a parte date de datetime e obtenha o máximo para cada dia. select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
Para obter todos os campos da tabela para essas linhas, use
select * from tablename where `datetime` in (
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)