2011-04-20 120 views
1

我想按日期排序;然而,在我修剪了日期的一部分之后。它不承认日期。有什么建议么?SQL按日期排序问题

SELECT Count(*) AS total, 
    DATE_FORMAT(install_date, '%d-%m-%Y') AS new_date 
FROM extable 
GROUP BY new_date 
ORDER BY new_date DESC 

---- OUTPUT -----

1583 31-12-2010 
1180 31-10-2010 
64 31-08-2010 
959 31-03-2011 
1520 31-01-2011 
1626 30-12-2010 
920 30-11-2010 
1608 30-10-2010 

回答

-1

您也可以按照Y-M-D的顺序进行排序。这会给你正确的排序。

+0

我没有看到您的答案。抱歉!。是的,我做了同样的事情。 – snagcheol 2011-04-20 22:17:24

3

DATE_FORMAT被转换您的日期与给定的格式的字符串。然后您按该字符串进行排序,在这种情况下,DBMS正在应用正确的排序。如果您想按日期排序,则应该按install_date排序。

+0

因此,格式化'%Y-%m-%d'works.Thanks – snagcheol 2011-04-20 22:16:01

+0

不,对此进行排序的正确方法是使用原始日期。这样,您的排序与您显示的日期无关。 – Brad 2011-04-20 22:18:05