按降序日期排序

时间:2017-12-02 07:39:20

标签: c# sql-order-by

这很奇怪。我需要一个日期列表,以最近的日期排在最前面。日期的数据类型是varchar。使用DESC的命令似乎没有按照我想要的方式工作。

Select * from invoice
ORDER BY date DESC

它给我按日排序的日期,如

30/11/2017
23/11/2017
21/06/2017
02/12/2017
01/12/2017

需要像:

02/12/2017
01/12/2017
30/11/2017
23/11/2017
21/06/2017

1 个答案:

答案 0 :(得分:2)

使用STR_TO_DATE

SELECT *
FROM invoice
ORDER BY STR_TO_DATE(date, '%d/%m/%Y') DESC;

请注意,出于您已经看到的原因,通常不希望将日期存储为文本。这使得处理日期信息变得更加困难。

Demo