Mysql 日期\格式和按日期排序

Mysql 日期\格式和按日期排序,mysql,Mysql,我目前遇到一个问题,按使用日期\格式的数据列对结果进行排序 我有以下日期: 12-03-12 21-03-12 25-03-12 17-04-12 执行查询时: SELECT date FROM myTable ORDER date DESC 日期的顺序是正确的 17-04-12 25-03-12 21-03-12 12-03-12 当我执行查询时 SELECT DATE_FORMAT(date, '%d-%m-%Y') as `date` ORDER BY date 现在日期的顺序不对 2

我目前遇到一个问题,按使用日期\格式的数据列对结果进行排序

我有以下日期:

12-03-12 21-03-12 25-03-12 17-04-12 执行查询时:

SELECT date FROM myTable ORDER date DESC
日期的顺序是正确的

17-04-12 25-03-12 21-03-12 12-03-12 当我执行查询时

SELECT DATE_FORMAT(date, '%d-%m-%Y') as `date` ORDER BY date
现在日期的顺序不对

25-03-12 21-03-12 17-04-12 17-03-12 14-03-12 我也试过运行这个查询 选择日期\u FORMATdate,'%d-%m-%Y'作为日期顺序(按日期\u FORMATdate,'%d-%m-%Y',但没有区别)


如何使其按正确顺序排序。

只需为order BY子句中的列指定表名即可:


在这种情况下,mysql知道您希望按表列排序,而不是按您在选择部分中计算的表达式排序。问题是您正在用别名覆盖列名

选择其他别名:

SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as date_formatted
FROM myTable 
ORDER BY `date` DESC

谢谢,我试过了,但还是不起作用。它看起来似乎只按日期的前半部分(即日期)排序,而不考虑月份consideration@Boardy:不,你没有完全这样做。您可能有更多的列,或者您的查询中出现了一些不同的内容。很抱歉,我是一个无知的人,我误读了您的代码。我说的是按日期排序,而不是按日期排序。现在很好用。谢谢你的帮助。是的,就是这样!特别是当我不想更改日期键时,我只想用db格式化它
SELECT DATE_FORMAT(`date`, '%d-%m-%Y') as date_formatted
FROM myTable 
ORDER BY `date` DESC