我的问题看起来很愚蠢,但我还没有找到任何有效的解决方案。我在我的DB DateTime
格式为d/m/Y H:i:s
(日/月/年小时:分钟:秒),这是一个字符串。
我需要按DateTime
订购一张桌子,但显然它按天订购08/06/2015 11:25:37
在14/05/2015 10:18:20
之前。我试图将DateTime
转换为日期,但它不起作用。
是否有一种方法可以正确地转换它,或者按年、月、日、小时等顺序排序?
可按转换值排序:
select * from TableName
order by STR_TO_DATE(ColumnName, 'd%/m%/Y% H%:i%:s%')
小提琴http://sqlfiddle.com/!9/f5003/1
您必须使用str_to_date将字符串转换为日期,然后您可以按以下顺序使用:
SELECT * from `table` order by STR_TO_DATE(column_name,'%d/%m/%Y %H:%i:%s');
有关更多信息,请参阅mysql文档
您应该考虑将列的类型更改为日期时间类型