0
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 文字には日付が含まれています。06.28.2013-Title_of_file なので、部分文字列を取得してファイル日付として設定し、WHERE LIKE でフィルタリングします

次に、date_format を使用して日付順に並べ替えようとしましたが、クエリを実行すると正しく並べ替えられません。

日付形式に変換する必要がありますか? もしそうなら、SQL内でそれを行うにはどうすればよいですか?

4

2 に答える 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ます。

于 2013-07-10T22:00:48.260 に答える