Как я могу заказать запрос вовремя - PullRequest
1 голос
/ 16 октября 2011
select playing_time from video order by playing_time desc;  

Тип столбца playing_time равен varchar(25) Пример данных

01:05:22  
21:08  
07:52  
04:31

Запрос не работает, он не упорядочивается по наибольшему времени как я могу решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 16 октября 2011

Вы можете попробовать:

SELECT playing_time FROM video ORDER BY str_to_date(playing_time,'%k:%s') DESC

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

1 голос
/ 16 октября 2011

Я бы пошел для изменения типа столбца, используемого для хранения длительности с varchar до unsigned int и держал бы длину в секундах.Таким образом, вы точно знаете, что вы там хранили.Прямо сейчас вы должны по-разному относиться к (по крайней мере) 2 форматам, которые у вас есть: (21:08 и 01:05:22)

...