在select语句sql server中排序

时间:2016-03-08 07:21:32

标签: sql-server-2008r2-express

我尝试按降序从表中获取日期,但是当我在查询中按顺序编写时,它按升序显示日期..我无法发布整个查询我发布特定行例如当我尝试这是查询显示时

 date
    01/03/2016
    26/02/2016
    25/02/2016
    06/01/2015

但这就是我想要的东西

 date
    06/01/2015
   25/02/2016
    26/02/2016
    01/03/2016

这是我试过的

 ORDER BY
convert(date, account.postdate) DESC,      
account.ACDOCNO ASC     

任何解决方案?

3 个答案:

答案 0 :(得分:0)

您需要将ORDER BY中的日期从DESC更改为ASC

ORDER BY
convert(date, account.postdate) ASC,   
account.ACDOCNO ASC   

或只是

ORDER BY
convert(date, account.postdate) ,   
account.ACDOCNO 

由于ASC是SQL Server中的默认排序顺序。

答案 1 :(得分:0)

我认为这里的问题可能是一个语言问题 - 您所分享的所需输出确实是升序顺序(对于日期而言,这意味着从较旧到较新)。因此,只需使用asc代替desc,您就可以了:

ORDER BY
convert(date, account.postdate) ASC, -- Here!
account.ACDOCNO ASC     

答案 2 :(得分:0)

这还取决于您如何在表格中保存日期。你把它们保存为DATETIME类型吗?

如果不是,这是相关的帖子: Order by date (varchar)?

顺便问一下,convert()在这做什么?从我在参考文献中检查过,它用于将字符串转换为不同的字符集。