Можете да group by
частта от датата на datetime и вземете максимума за всеки ден.
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
За да получите всички полета от таблицата за такива редове, използвайте
select * from tablename where `datetime` in (
select max(`datetime`)
from tablename
where `datetime` >= date(now())-interval '30' day
group by date(`datetime`)
)