Hola mksp:
Si entendí bien en tu tabla tienes datos como estos:
20 -> 00:20
130 -> 01:30
2205 -> 22:05
es decir, cada entero corresponde a una hora y lo que necesitas es sumar los campos, de tal manera que el resultado anterior sea 23:55 correcto???
El algoritmo que se me ocurre sería el siguiente:
1°. convertir tu número a varchar, rellenando con ceros a la izquierda para dejarlo de cuatro posiciones:
20 -> 0020
130 -> 0130
2205 -> 2205
SQL Server no tienen una función específica para hacer esto, pero podrías hacerlo así:
Código SQL:
Ver originalDECLARE @campo1 SMALLINT;
SET @campo1 = 30
SELECT RIGHT('0000' + CAST(@campo1 AS VARCHAR(4)), 4)
Ahora bien, ya con el campo varchar a 4 posiciones podrías convertirlo a tipo fecha:
Código SQL:
Ver originalDECLARE @campo1 VARCHAR(4);
SET @campo1 = '0030'
SELECT CONVERT(datetime, LEFT(@campo1, 2) + ':' + RIGHT(@campo1,2), 108)
Finalmente, ya con los tres campos tipo datetime puedes sumarlos y recuperar la hora, con la función convert para obtener sólo la hora:
Código SQL:
Ver originalDECLARE @campo1 datetime;
SET @campo1 = getdate()
SELECT CONVERT(VARCHAR, @campo1, 108)
Igual y sería conveniente que programes esto en una función Smallint_a_Datetime, para poder aplicarlo en los tres campos.
Dale un vistazo a los códigos que te puse, intenta crear tu función y si tienes problemas lo comentas en el foro para ayudarte a finar los detalles que puedas tener.
Saludos
Leo.