转换mySQL表中的日期格式并按日期对结果进行排序

时间:2015-09-02 08:39:59

标签: mysql sql

我有一个日期格式不一致的表格。例如:

ID  date        name
1   01.02.2015  exampleA
2   12.13.2015  exampleB
3   1.11.2015   exampleC

有时日期格式为d.m.Y,有时格式为m.d.Y.我创建了这个SQL语句,它以统一的格式转换结果的日期列:

SELECT IFNULL(DATE_FORMAT(STR_TO_DATE(date, '%d.%m.%Y'), '%d.%m.%Y'),
       DATE_FORMAT(STR_TO_DATE(date, '%m.%e.%Y'), '%e.%m.%Y')) AS date,
       Name,
       ID
FROM `exampleTable`
ORDER BY `date` DESC

但是结果并没有按日期排序,因为这个列被视为数字或其他内容,因此顺序没有意义。

  • 我该怎么做才能得到所需的结果?
  • 有没有办法创建新列并在日期中写日期 我表格中的统一格式,以便我可以删除其他日期 列?

1 个答案:

答案 0 :(得分:1)

似乎无法区分programmaticaly日期的格式,如02.03.2015,它可以是%d.%m.%Y%m.%e.%Y它会在两种情况下给出结果,尽管结果会有所不同。对于类似的varcahar输入,信息已丢失