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()
hai fatto centro piero, mysql fa un upcasting del campo date, proprio come hai detto tu, quindi funziona sia con curdate() che con now()