2016-04-01 5 views
2

テーブルにデータを保存しました。私はnew_meeting_timeという名前のカラムをvarcharとしてソートしたい。私は、クエリSELECT * FROM table_name ORDER BY new_meeting_time ASCを持って、私に次のように出力できます:AM/PM昇順でvarcharデータ型として格納されている日時をソートする方法は?

 1. 17-03-2016 01:26 PM 
     2. 17-03-2016 01:31 PM 
     3. 17-03-2016 01:34 PM 
     4. 17-03-2016 01:44 PM 
     5. 17-03-2016 10:33 AM  

をしかし、私は次の順序でデータを取得したい:

 1. 17-03-2016 10:33 AM 
     2. 17-03-2016 01:26 PM 
     3. 17-03-2016 01:31 PM 
     4. 17-03-2016 01:34 PM 
     5. 17-03-2016 01:44 PM 

はどうすればこれを行うことができますか?

+0

'new_meeting_time'のデータ型は何ですか? –

+0

申し訳ありませんが、間違った鉱石。私はそれを修正しました。 @DylanSu –

+0

new_meeting_timeのデータ型をvarcharからtimestampに変更してください –

答えて

0
SELECT * 
FROM table_name 
ORDER BY STR_TO_DATE(new_meeting_time, '%d-%m-%Y %h:%i:%s') ASC 
+0

ありがとうございます@devs –

+1

答えが正しい場合は、左側の灰色のチェックをクリックして受け入れてください。将来のユーザーが使用できるようにする –

0

STR_TO_DATEを試してみてください。この機能の効果について

SELECT * FROM table_name ORDER BY STR_TO_DATE(new_meeting_time,'%d-%m-%Y %h:%i %p'); 

デモ:

mysql> select STR_TO_DATE('17-03-2016 01:26 PM','%d-%m-%Y %h:%i %p'); 
+--------------------------------------------------------+ 
| STR_TO_DATE('17-03-2016 01:26 PM','%d-%m-%Y %h:%i %p') | 
+--------------------------------------------------------+ 
| 2016-03-17 13:26:00         | 
+--------------------------------------------------------+ 
1 row in set (0.00 sec) 
5

ストア日時で適切な形式でデータ。

他の回答からの解決策は、パフォーマンス面ではひどいものです。

データベースは素晴らしいmechsnismです。そして、それを適切に使うべきです。あなたが車を運転するために馬を利用する方法を尋ねるなら、適切な答えは「ガソリンを購入する」です。

関連する問題