This seems to work for all combinations of time values.
Create Table #test (
TestDate varchar(9)
)
Insert into #test
Select '0'
union
select '01:00:22'
union
select '39:00'
union
select '02:19'
union
select '-03:06'
Select TestDate
,case left(TestDate,1)
when '-'
then Convert(decimal(9,8),Convert(datetime,Left('00:00:00', 9-Len(TestDate)) + substring(TestDate,2,8))) * -1
else
Convert(decimal(9,8),convert(datetime,Left('00:00:00', 8-Len(TestDate)) + TestDate))
end as SortDate
from #test
order by SortDate
Don Urquhart