Puoi group by
la parte data di datetime e ottieni il massimo per ogni giorno.
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
Per ottenere tutti i campi dalla tabella per tali righe, utilizzare
select * from tablename where `datetime` in (
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)