Sie können group by
den Datumsteil von datetime und erhalte das Maximum für jeden Tag.
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
Um alle Felder aus der Tabelle für solche Zeilen abzurufen, verwenden Sie
select * from tablename where `datetime` in (
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)