Предполагая, что это действительно то, что представляет это число ...
Местоположение, которое вы используете в команде STUFF, отключено на 1, если раньше, чем 10 часов.
Это не красиво, но попробуйте select cast(stuff(stuff(REPLACE(SPACE(7 - CHARINDEX('.', '15600.02' + '.')),' ','0') + '15600.02',5,0,':'),3,0,':') as time)