web-dev-qa-db-fra.com

Commande par datetime mysql

J'ai une table qui contient un type de champ datetime et je souhaite trier la syntaxe de sélection en fonction de sa décroissance, comme ci-dessous:

2012-12-12 01:44:20

2012-12-11 01:44:40

2012-12-10 01:40:36

2012-12-09 12:28:19

2012-12-09 12:19:21

2012-12-09 12:11:50

2012-12-09 12:00:11

2012-12-09 11:59:26

2012-12-09 11:57:08

2012-12-09 11:55:21

8
Samer
ORDER BY columnname DESC

Et voilà!

26
zerkms
ORDER BY UNIX_TIMESTAMP(columnname) DESC

Le UNIX_TIMESTAMP est nécessaire, car mysql les teste en tant que chaînes (ex 9:00 apparaît après 16:00)

12
user3700873

Dans mon cas, dtEvent est de type datetime. C'est la seule solution que j'ai trouvée:

SELECT myTable.recordId, myTable.dtEvent
FROM myTable
WHERE myTable.dtEvent IS NOT NULL
ORDER BY CAST(YEAR(myTable.dtEvent) AS UNSIGNED),
    CAST(MONTH(myTable.dtEvent) AS UNSIGNED),
    CAST(DAY(myTable.dtEvent) AS UNSIGNED) 
LIMIT 100;
0
Fabio Richeri