データベースに情報を取得する必要があります。各行には2013年1月のようにフォーマットされた日付があります。最新の日付が最初に表示されるように並べ替えるにはどうすればよいですか?これらの情報は順番に挿入されていないため、最初に並べ替える必要があります。ありがとうございました!:)
3 に答える
2
TIMESTAMP、DATEなどの適切なタイプの列に日付を保持する限り、日付のフォーマットは関係ありません。日付がVARCHARに保持されている場合、データベースは単純に壊れているため、最初に列タイプを修正する必要があります。
于 2013-03-20T06:17:24.323 に答える
0
に日付を保存しましたvarchar
。だからSTR_TO_DATE()
、ソートのための関数を使用してください
SELECT * FROM table WHERE STR_TO_DATE(column, %M %Y) ORDER BY column DESC
于 2013-03-20T06:21:07.040 に答える
0
わかりました、これはちょっとトリッキーですが、テーブルのデータ型としてvarcharがあるので、これが唯一の方法だと思います。動作しますが、大規模なテーブルデータのパフォーマンスについてはよくわかりません。秘訣は、varcharを2つのマンバーフィールドに分割することです。1つは年と月の番号です。
SELECT mydate
FROM mytable
ORDER BY RIGHT(mydate,4) DESC, //get the year
CASE LEFT(mydate,INSTR(mydate,' ')-1)
WHEN 'January' THEN 1
WHEN 'February' THEN 2
WHEN 'March' THEN 3
WHEN 'April' THEN 4
WHEN 'May' THEN 5
WHEN 'June' THEN 6
WHEN 'July' THEN 7
WHEN 'August' THEN 8
WHEN 'September' THEN 9
WHEN 'October' THEN 10
WHEN 'November' THEN 11
WHEN 'December' THEN 12
END DESC //get the month and turn in to number
于 2013-03-20T08:13:55.073 に答える