DATE_FORMAT之前的订单无法正常工作

问题描述 投票:0回答:2
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因此我抓取了该子字符串并将其设置为filedate,并使用WHERE LIKE进行过滤

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

我必须将其转换为日期格式吗?如果是这样,那我该如何在SQL中执行此操作?

mysql date-format
2个回答
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对象。


0
投票

您应该只按文件日期排序。 不管日期的格式还是相同的日期和时间DATE_FORMAT返回格式化日期,而不是列。

© www.soinside.com 2019 - 2024. All rights reserved.