Allora ribadendo che DATE e' una funzione php e non esiste in MySQL,
l'ultimo giorno di un mese si puo' trovare facilmente in php e poi passare il dato a mysql.
codice:
$fine_mese= date("Y-m-d", mktime (0,0,0,date("m")+1 ,00,date("Y")));
echo $fine_mese;
In pratica aggiungi un mese e metti il giorno = 0. ti dara' l'ultimo giorno del mese in corso.

codice:
SELECT * FROM accessi 
WHERE codice_sub = '$codice' 
AND '$data' BETWEEN data AND '$fine_mese'