对使用日/月/年格式的MySQL日期进行排序

时间:2016-07-09 20:22:57

标签: php mysql

我正在处理一些房地产列表数据,其中 MLS 决定使用日/月/年格式列出其上市日期。

我希望能够按列出的日期进行排序。如果我使用 ORDER BY子句它就不会工作,因为这一天是第一个数字,它基本上按天排序,无论年,月等等。

例如: - 2015年12月12日(2015年12月12日)将于05/01/2015(2015年1月5日)之前到来。我能想到的唯一解决方案是遍历每个条目并重新安排日期格式。

但在我这样做之前,有没有办法在当前日/月/年格式上使用 ORDER BY子句进行SQL查询?

2 个答案:

答案 0 :(得分:2)

只需将字符串首先转换为日期:

ORDER BY STR_TO_DATE(yourdatefield, '%m/%d/%Y')

请注意,此查询不会使用索引,而在大型数据库上,性能会受到影响。我建议(如果您正在寻找速度),请在数据库中重新格式化此字段,并更新受影响的代码。

UPDATE table
SET yourdatefield = STR_TO_DATE(yourdatefield, '%m/%d/%Y')

然后,确保前端正确显示事物。您可以使用date format函数将传出日期格式化为您需要的格式。

答案 1 :(得分:0)

试试这个

ORDER BY STR_TO_DATE(CONCAT_WS('-',day,month,year), '%d/%m/%Y')

相关问题