Per quanto riguarda l'estrarre i record che hanno una data compresa tra una data x e una y puoi fare (l'ho abbozzata eh, spero sia giusta):
Per l'altrop quesito che hai posto è necessario perlomeno conoscere la struttura della tabella., altrimenti è un pochino difficile risponderti.codice:SELECT * FROM tabella WHERE campo_data BETWEEN STR_TO_DATE('01-5-2009','%d-%m-%Y') AND STR_TO_DATE('20-5-2009','%d-%m-%Y')
Ciao