ORDER BY格式错误的日期列

时间:2013-12-12 10:45:15

标签: mysql date format

如何按此订购(在日期列中) - 不太好 - 日期格式。

7 Dec 2013 - 5 Feb 2014
31 Oct 2013 - 29 Dec 2013
3 Dec 2013 - 31 Jan 2014
3 Dec 2013 - 31 Jan 2014

我只需按第一个日期排序,即

7 Dec 2013
31 Oct 2013
3 Dec 2013
3 Dec 2013

我已经检查了STR_TO_DATE,但如果我没错,我需要有一个字符串放入此,我没有。每个日期都在数据库列日期

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT * FROM tab1
ORDER BY str_to_date(left(col1,INSTR(col1,' -')), '%d %M %Y')

这将获取' -'左侧的字符串,然后将其转换为日期年份的日期格式,并将其排序为日期。

sqlfiddle demo

P.S。我同意之前的评论,如果你为每个时期的start_date和end_date使用两列,这很容易避免。它也会更快。