0

クエリの結果を形式の日付で並べ替えようとしましたが、yyyy/mm/ddこのクエリを使用しても無駄になります。

SELECT * FROM table ORDER BY STR_TO_DATE(date, '%y/%m/%d')

日付が保存されているフィールドのタイプを変更できないので、日付投稿データ入力を注文できることを望んでいます。

どんな助けやアドバイスもありがたいです。

4

3 に答える 3

3

日付がその形式の場合、日付に変換する必要はありませんよね?その形式は、0が埋め込まれていると仮定すると、アルファベット順に並べ替えられます...(つまり、7月は2012年7月3日は2012/07/03です...)

だからあなたはただ行くことができます:

select * from table order by date

あなたのフィールドはどのタイプのフィールドですかdate:それは確かvarcharですか?

それがであると仮定すると、次のvarcharようにして何が問題になっているのかを理解できます。

select str_to_date(date, '%y/%m/%d') from table 

%yが間違っているので、すべてのNULLを取得する必要があります。試す:

select str_to_date(date, '%Y/%m/%d') from table

そしてそれは動作するはずです。ただし、前述のように、並べ替えに変換する必要はありません。

于 2012-06-19T08:25:49.350 に答える
0

大文字のYで試してください:

SELECT * FROM table ORDER BY STR_TO_DATE(date, '%Y/%m/%d')

小文字のYはyyを表し、大文字はyyyyを表します。

于 2012-06-19T08:26:11.817 に答える
-1

SELECT*FROMテーブルORDERBY日付

于 2012-06-19T08:26:53.847 に答える