Mysql 事件日期Asc不正确

Mysql 事件日期Asc不正确,mysql,date,Mysql,Date,如何做到这一点 Select DATE_FORMAT(EventDate, '%b %d, %Y') from details Order by STR_TO_DATE(EventDate, '%d-%m-%y') 样本记录 Oct 24, 2012 Oct 27, 2012 Oct 28, 2012 Oct 20, 2012 Dec 22, 2012 Jan 11, 2013 Jan 19, 2013 Nov 24, 2012 Dec 29, 2012 那么这个呢: Select DA

如何做到这一点

Select DATE_FORMAT(EventDate, '%b %d, %Y') 
from details 
Order by STR_TO_DATE(EventDate, '%d-%m-%y')
样本记录

Oct 24, 2012
Oct 27, 2012
Oct 28, 2012
Oct 20, 2012
Dec 22, 2012
Jan 11, 2013
Jan 19, 2013
Nov 24, 2012
Dec 29, 2012
那么这个呢:

Select DATE_FORMAT(EventDate, '%b %d, %Y') from details Order by EventDate
因此,我们从
EventDate
开始,您说它是
DATE
,我们将它作为第一个参数提供给
STR\u to\u DATE()
。这样的函数需要一个字符串,所以MySQL可能使用默认格式(YYYY-MM-DD)将您的日期转换为字符串。然后它尝试使用DD-MM-YYYY作为格式将字符串转换为日期,但您的字符串不是该格式。你知道我想去哪里吗

总而言之:你不需要在约会之前设定日期——这已经是一个日期了

Order by EventDate

您将
EventDate
视为
VARCHAR
DATE
。它是什么数据类型?这是我对日期排序的查询,但日期的顺序不尽可能正确see@MargzJacela汤姆是对的,你说的顺序不正确到底是什么意思?列的数据类型是什么?EventDate字段的数据类型是什么?如果是日期,此查询将正确排序。如果不是日期,则条目在格式化之前是什么样子?@Margz,我的查询与你的查询不同。
Order by EventDate