Mysql 日期\格式和按日期排序
我目前遇到一个问题,按使用日期\格式的数据列对结果进行排序 我有以下日期: 12-03-12 21-03-12 25-03-12 17-04-12 执行查询时: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
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