我怎样才能完美地对日期进行排序

How can I sort date perfectly

提问人:GelS Sy 提问时间:7/22/2019 最后编辑:GelS Sy 更新时间:6/1/2020 访问量:82

问:

我试图按日期对数据进行排序,但它的排序并不完美。我不知道代码中是否有错误。

以下是我数据库中的一些数据:

March 5, 2016
March 17, 2016
August 9, 2017
April 2, 2016
July 5,2018
January 15, 2019

我使用的查询是:

SELECT * FROM reporting  ORDER BY date ASC

结果是:

April 2, 2016
August 9, 2017
January 15, 2019
July 5,2018
March 5, 2016
March 17, 2016

预期成果:

March 5, 2016
March 17, 2016
April 2, 2016
August 9, 2017
July 5,2018
January 15, 2019
MySQL的

评论

1赞 Tim Biegeleisen 7/22/2019
不要将日期存储为文本。相反,请使用以下答案之一,并将该列更改为真实日期。
0赞 GelS Sy 7/22/2019
要注意那个蒂姆。
1赞 Gordon Linoff 7/22/2019
@GelSSy . . .使用您正在使用的数据库标记您的问题。

答:

3赞 Fahmi 7/22/2019 #1

用于将日期字段从字符串转换为日期时间str_to_date()

SELECT * FROM reporting  ORDER BY str_to_date(`date`,'%M %d, %Y') ASC
0赞 PHP Geek 7/22/2019 #2

使用日期格式

ORDER BY DATE_FORMAT(date, "%F-%d-%Y") as date ASC
0赞 DarkRob 7/22/2019 #3

你可以试试这个,

对于 SQL Server:

convert( varchar, [date], 120)将转换您的日期格式。yyyy-MM-dd

 select * from reporting order by convert( varchar, [date], 120) asc

对于 MySQL:

 select * from reporting order by DATE_FORMAT(date, "%Y-%m-%e") asc

评论

0赞 Tim Biegeleisen 7/22/2019
OP从未标记过他的数据库,但大多数时候人们会使用MySQL和PHP,而不是SQL Server。
0赞 GelS Sy 7/22/2019
您提供的查询不会对数据进行排序。
0赞 DarkRob 7/22/2019
@GelSSy:立即查看