Mysql 我怎样才能完美地分类日期

Mysql 我怎样才能完美地分类日期,mysql,Mysql,我试图按日期对数据进行排序,但排序并不完美。我不知道代码中是否有错误 以下是我的数据库中的一些字符数据: 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

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

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

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
使用
str\u to\u date()
将日期字段从字符串转换为日期时间

SELECT * FROM reporting  ORDER BY str_to_date(`date`,'%M %d, %Y') ASC
使用日期格式

ORDER BY DATE_FORMAT(date, "%F-%d-%Y") as date ASC
你可以试试这个

对于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

不要将日期存储为文本。取而代之的是,使用下面的答案之一,并将列改为真实的日期。我要记下蒂姆。@GelSSy。用您正在使用的数据库标记您的问题。OP从未用他的数据库标记,但大多数情况下,人们将使用MySQL和PHP,而不是SQL Server。您给出的查询不会对数据进行排序。@GelSSy:现在检查