Intanto dovresti avere lo stesso formato per l'orario. Assumi hh:mm:ss.
Poi devi considerare che solo l'ora potrebbe non essere significativa senza il giorno. Se sei sicuramente nell'ambito delle 24 ore potresti fare la cosa sia con mysql che con php. Vediamo con php.
codice:
$var1 = '2:30:20'; // tempo da db - valore minore
$var2 = date("H:i:s"); // $tempo_adesso - valore maggiore
$ora1 = explode(":",$var1);
$ora2 = explode(":",$var2);
$diff = mktime($ora2[0],$ora2[1], $ora2[2],1,1,2000) - mktime($ora1[0], $ora1[1], $ora1[2], 1,1,2000);
echo $tempo = floor($diff / (60*60)).":".(($diff / 60) % 60).":".($diff % 60) ;
E' abbastanza chiaro. La data 1,1,2000 serve solo per dare la data a mktime altrimenti fallirebbe, e' una data arbitraria puo' essere qualunque nell'ambito del range unix timestamp. Se eventualmente ci fosse un gap di un giorno, lo puoi aggiungere (+1) nel mktime.