Io farei così:
il campo data lo strutturerei anche con l'ora, salvo poi visualizzare il dato opportunamente formattato.

ad esempio: datetime varchar(14); ed in inserimento fai:

Codice PHP:
INSERT INTO tabella (datetimeVALUES (NOW()*1); # il simbolo *1 serve ad inserire un valore numerico, ad esempio per l'ora attuale inserirebbe 20071118142940 
A questo punto l'order by funziona alla grandissima!