Puedes probar con esto:
Código:
delete from tabla
WHERE fecha < now( ) - INTERVAL 3 MONTH
Esto te borra directamente todos los registros que tienen más de 3 meses de antigüedad.
Si lo que quieres es consultarlos, simple:
Código:
select * from tabla
WHERE fecha < now( ) - INTERVAL 3 MONTH
Un saludo