hai fatto centro piero, mysql fa un upcasting del campo date, proprio come hai detto tu, quindi funziona sia con curdate() che con now()Originariamente inviato da piero.mac
puoi mettere la data sia in forma numerica sia in forma di data.
Quando la confronti se la la data e' congruente viene comparata in entrambi i modi. Poiche' NOW() rende data e time probabilmente, ma non ne ho la certezza al momento, in mancanza di ore:min:sec nel campo viene assunto 00:00:00.
Se usi CURDATE() al posto di NOW() ti risolvi il problema del TIME.
where campo_data < CURDATE()