2016-04-01 19 views
2

Verileri, masamda sakladım. new_meeting_time isimli sütumu varchar olarak sıralamak istiyorum. Ben bir sorgu SELECT * FROM table_name ORDER BY new_meeting_time ASC var ve bana aşağıdaki çıktıyı verir:Tarih/saat artan AM/PM'de varchar veri türü olarak saklanan tarih-zaman nasıl sıralanır?

 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  

Ama şu sırayla verileri almak istiyorum:

 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 

i nasıl yapabilirim

?

+0

"new_meeting_time" veri türü nedir? –

+0

Yanlış oreder için özür dilerim. Onu düzelttim. @DylanSu –

+0

lütfen varchar'dan new_meeting_time veri tipini zaman damgası olarak değiştirin –

cevap

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

Teşekkür ederim işime yarayacak @devs –

+1

Yanıt doğruysa, lütfen kabul etmek için soldaki gri tıklamayı tıklayın. Gelecek kullanıcılar kullanabilir –

0

Bu uygulamayı STR_TO_DATE kullanmayı deneyin. Bu fonksiyonun etkisi

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

Demo:

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

Mağaza datetime bir uygun formatta, içinde veri.

Diğer cevaplardan gelen çözümler sadece çok kötü performanslıdır.

Bir veritabanı, iyi bir mechsnizmdir. Ve biri düzgün kullanmalı. Bir arabayı sürmek için atı nasıl kullanacağınızı sorarsanız, uygun cevap "benzin al" dır.

İlgili konular