Hey,
This will do it BUT - You arent getting days in that.
DECLARE @hours decimal(15,4)
SELECT @hours = 28.75
SELECT RIGHT('00' + CONVERT(varchar(2),FLOOR(@hours)),2)
+':'
+ RIGHT('00' + CONVERT(varchar(2),FLOOR(((@hours-FLOOR(@hours))*60))),2)
+':'
+ RIGHT('00' + CONVERT(varchar(2),FLOOR(((@hours-FLOOR(@hours))*60)-FLOOR(((@hours-FLOOR(@hours))*60)))*60),2)
Here's the thread from google. There's another method there too which will get you the full datetime data type too.
http://www.dbforums.com/microsoft-sql-server/1202305-converting-decimal-time.html
HTH
Ta