这很奇怪。我需要一个日期列表,以最近的日期排在最前面。日期的数据类型是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
答案 0 :(得分:2)
使用STR_TO_DATE
:
SELECT *
FROM invoice
ORDER BY STR_TO_DATE(date, '%d/%m/%Y') DESC;
请注意,出于您已经看到的原因,通常不希望将日期存储为文本。这使得处理日期信息变得更加困难。