Le problème est que votre représentation de l'horodatage sous forme de chaîne n'est pas au format canonique, c'est-à-dire que le tri de la valeur de la chaîne ne se fait pas dans l'ordre de l'horodatage.
Pour trier les lignes dans l'ordre, vous pouvez convertir la représentation en caractères de la valeur en un type de données DATETIME ou TIMESTAMP, ou au moins en une représentation en caractères dans un format canonique (par exemple, "YYYY-MM-DD hh:mm:ss" avec une horloge de 24 heures).
En STR_TO_DATE
est utile pour convertir une chaîne de caractères dans un format connu en DATETIME :
SELECT * FROM table
ORDER BY STR_TO_DATE(`timestamp`,'%m/%d/%Y %h:%i:%s %p')
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date