Originariamente inviato da zeroh
Vediamo se ho capito bene ok?

se creo una query di questo tipo per esempio

$query='SELECT * from pagamenti where
ultimopagamento <= (curdate() - interval 20 month) - interval 30 day AND ultimopagamento <= curdate() - interval 20 month';

seleziono tutte le persone che non pagano da più di venti mesi (venti compreso)

Vero?
vediamo il famoso trucco della valigia...

Come faccio a sapere in modo semplice di quale periodo stiamo parlando???

facciamo una SELECT...
codice:
SELECT (curdate() - interval 20 month) - interval 30 day AS start,
curdate() - interval 20 month as end
copia e appiccica in phpmyadmin.... la risposta e':
codice:
start        end  
2003-08-25   2003-09-24
Quindi selezioni tutte le persone con ultimo pagamento effettuato dal 25-08-2003 al 24-09-2003 compreso. Si potrebbe invece di (-20 mesi -30 giorni) fare (-19mesi + 1 giorno)... ma il nocciolo e' lo stesso. Se vuoi escludere la corrispondenza del 24 (oggi) basta togliere = e lasciare solo minore nella seconda parte di AND...