Try this ,it may look ugly,but it does work
select cast(left(convert(decimal(10,2),times)/3600,2)%12 as varchar)+':'+
left(cast(round(cast(right(convert(decimal(10,2),times)/3600,8)as money)*60,0) as varchar),2)
+' PM'
as float from e
e is tablename
times is the column which has value like 66600