Můžete group by
datumovou část datetime a získejte maximum pro každý den.
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
Chcete-li získat všechna pole z tabulky pro takové řádky, použijte
select * from tablename where `datetime` in (
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)