订单由DATE_FORMAT无法正常工作

时间:2013-07-10 21:53:12

标签: mysql database mysqli date-format

SELECT  SUBSTR(`filename`, 1, 10) as filedate, `filename`, `filepath`
FROM  `files`  
WHERE `filepath` LIKE 'sites/default/files/news/%' 
ORDER BY DATE_FORMAT(filedate,'%m.%d.%Y') ASC

文件名包括前10个字符中的日期。 2013年6月28日,Title_of_file 所以我抓住子串并将其设置为归档,过滤WHERE LIKE

然后我尝试使用date_format按日期排序,但是当我运行查询时,它没有正确排序。

我必须将其转换为日期格式吗?如果是的话那么我该如何在SQL中做到这一点?

提前致谢

2 个答案:

答案 0 :(得分:2)

SELECT  STR_TO_DATE(SUBSTR(`filename`, 1, 10),'%m.%d.%Y') as filedate, `filename`, `filepath`
FROM  `files`  
WHERE `filepath` LIKE 'sites/default/files/news/%' 
ORDER BY filedate ASC

这会将剥离的字符串转换为DATE对象。

答案 1 :(得分:0)

您应该按文件日期排序。 无论日期格式如何,它仍然是相同的日期和时间。 DATE_FORMAT返回格式化日期而不是列。

相关问题