2016-09-15 9 views
0

私は自分の行を各行の日付で注文しようとしています。MySQL日付順の行

1行には2016-09-15 15:36があり、1つには2016-08-15 13:12があります。最高のものがトップになるように、どのように注文しますか?

彼らの行はth_activityと呼ばれ、私は通常のクエリで、あなたはSELECT * FROM threads ORDER BY th_activity DESCような何かをすることを知っているが、私はこの問題を知っていると信じています。行の型としてvarcharを使用します。私はそれが私が使用しなければならないものなら、長さ/値が日付のために何であるべきか本当にわかりません。

誰かがこれを正しく注文する方法を説明できる人は、私はそれを感謝します。

+0

私はこれがなぜあなたにとって問題であるのかは分かりません。 ISO 8601のような日付/時刻の美しさは、アルファベット順のルールでソートすることができ、それでも意味をなさないということです。たとえ列がvarcharであっても、ソートされているはずです。そうでない場合は、日付の前に空白文字がある可能性があります。 – cypherabe

答えて

0

varcharの代わりにtimstampのように列の種類を設定することができます。データの長さは考慮されません(データを挿入する間にのみ形式を考慮します)。

チェックタイムスタンプによってorderyするには、この質問:

MYSQL - Order timestamp values ascending in order, from newest to oldest?

SELECT th_activity 
FROM tableName 
ORDER BY timestamp desc; 
+0

ありがとうございます、今すぐ完璧です! – Synyster

0

あなたは、私がデータ型を使用します

select * from threads 
ORDER BY str_to_date(th_activity, '%Y-%m-%d %h:%i') DESC 
0

str_to_date変換を必要とする可能性があり

datetime 

と同じを使用します]を選択し、質問に書いた:

order by th_activity DESC 
4

をあなたの日付は年 - 月 - 日時の場合:分、あなたは何の問題もなく、アルファベット順に注文することができますので、ORDER BY th_activity DESCが正常に動作する必要があります。