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中做到这一点?
提前致谢
答案 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
返回格式化日期而不是列。