dovresti specificare che timestamp è, unix o mysql.
prima di fare danni sul db prova con una select anzichè col delete per accertarti che restituisca i record desiderati
select * from tabella where curdate() - interval 1 month > campo_dataora
(ammesso che sia un mysql timestamp)
edit: per la precisione
select * from tabella where now() - interval 1 month > campo_dataora