Yo estoy con
gnzsoloyo, lo mejor es hacer las horas horas, minutos y segundos, es decir, TIME. Pero si eso te supone un problema tan grande la solución de
alexisns podría servirte, aunque adaptada para ordenar, y si quieres poner hora en el select para que te muestre la hora tal cual la tienes, es decir, sin 0 por delante:
Código sql:
Ver originalSELECT fecha, hora FROM tabla ORDER BY fecha, TIME_FORMAT(hora,'%H:%i')
De todas formas y para el futuro, un consejo, el que te ha dado
gnzsoloyo: un campo de tiempo debe ser del tipo time, con el formato de ese tipo de campos, porque, por poner un ejemplo, imagina que quisieras hacer un sumatorio de tiempo...; tendrías que recurrir a conversiones como ésta que ralentizan todas las operaciones y que serían innecesarias si hubieras previsto la situación.