scusa eh, am se invece avessi fatto

tela semplifico ma spero di essermi spiegato

data_fine = mktime(data fine mese scelto);
data_inizio = mktime(data inizio mese scelto);

SELECT * FROM tabella WHERE ID='id del cliente' AND data > data_inizio AND data < data_fine ORDER BY DESC;


sempre se salvi le date nel DB in UnixTime....

ti prendi il primo valore restituito e sai che quello è il max perche hai l' ordinamento dato da mysql