2010-05-21 4 views
1

J'ai un champ dans ma base de données qui stocke le datetime qu'un élément a été ajouté à la base de données. Si je veux trier les articles dans l'ordre chronologique inverse je m'attendrais à ce que faire ORDER by date_added DESC ferait l'affaire. Mais cela ne semble pas fonctionner. J'ai également essayé ORDER by UNIX_TIMESTAMP(date_added) mais ceci n'a pas encore trié les résultats comme je m'attendrais. J'ai également un champ d'auto-incrémentation que je peux utiliser pour trier les éléments, donc je vais l'utiliser, mais je suis curieux de savoir pourquoi ORDER by datetime ne se comportait pas comme prévu.mysql ORDER BY champ de type datetime ne pas trier comme prévu

des idées?

la requête ressemble à:

SELECT file_name, date_added 
FROM table WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date_added 
ORDER BY date_added DESC 
+0

De quel type est votre 'date_added' terrain? –

+0

À quoi ressemble la requête? – Thierry

+0

Pouvez-vous publier la requête exacte que vous utilisez et le résultat? –

Répondre

0

J'ai eu le même problème où je ne recevais pas le tri correct pour un champ datetime.

J'ai résolu mon problème en utilisant un alias qui avait un nom différent de celui du nom de colonne datetime.

Par exemple voir ma requête de travail:

SELECT id,name,comments,date_format(created_on, '%d, %M. %Y') created_oon FROM comments WHERE phone_number='907-200-6304' ORDER BY created_on DESC;