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
ORDER BY columnname DESC
Et voilà!
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
)
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;