“按日期排序”字符串类型

时间:2015-06-08 11:00:01

标签: php mysql datetime

我的问题看起来很愚蠢,但我找不到任何有效的解决方案。 我的数据库DateTime格式为d/m/Y H:i:s(日/月/年小时:分:秒),这是字符串

我需要在DateTime一张桌子旁边订购,但显然它会在当天订购 08/06/2015 11:25:3714/05/2015 10:18:20之前。 我尝试将DateTime转换为日期但不起作用。

有没有办法正确地进行转换或按月订购,然后是按月,然后按天计数等等?

2 个答案:

答案 0 :(得分:4)

您可以按转换价值订购:

select * from TableName
order by STR_TO_DATE(ColumnName, 'd%/m%/Y% H%:i%:s%')

小提琴http://sqlfiddle.com/#!9/f5003/1

答案 1 :(得分:3)

您必须使用str_to_date将字符串转换为日期,而不是按顺序使用它:

SELECT * from `table` order by STR_TO_DATE(column_name,'%d/%m/%Y %H:%i:%s');

有关详细信息,请参阅mysql documentation

您应该考虑将列的类型更改为日期时间类型。