Conversión de segundos a hh:mm:ss

22/02/2010 - 16:02 por fer | Informe spam
Hola tod@s.
Utilizo esta funcion para convertir un tiempo en segundos y pasarlo a
formato hh:mm:ss. todo funciona correctamente hasta que si el numero
convertido es de un solo digito no me pone un 0 a la izquierda. por ejemplo.
me muestra esto. 1:9:20 cuando en realidad debería ser. 01:09:20

Muchas gracias por anticipado


CONVERT (nchar,tabla.TiempoSegundos / 3600) + N':' + CONVERT (nchar,
tabla.TiempoSegundos/ 60 - 60 * (tabla.TiempoSegundos / 3600)) + N':' +
CONVERT (nchar, tabla.TiempoSegundos - tabla.TiempoSegundos / 60 * 60)

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
22/02/2010 - 17:46 | Informe spam
Es más fácil que lo que estás usando: simplemente utiliza CONVERT con el
estilo 108 y tendrás lo que buscas. Algo como

SELECT CONVERT(CHAR(8), tuFecha, 108) AS [hh:mm:ss]

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"fer" wrote in message
news:
Hola
Utilizo esta funcion para convertir un tiempo en segundos y pasarlo a
formato hh:mm:ss. todo funciona correctamente hasta que si el numero
convertido es de un solo digito no me pone un 0 a la izquierda. por
ejemplo.
me muestra esto. 1:9:20 cuando en realidad debería ser. 01:09:20

Muchas gracias por anticipado


CONVERT (nchar,tabla.TiempoSegundos / 3600) + N':' + CONVERT (nchar,
tabla.TiempoSegundos/ 60 - 60 * (tabla.TiempoSegundos / 3600)) + N':' +
CONVERT (nchar, tabla.TiempoSegundos - tabla.TiempoSegundos / 60 * 60)
Respuesta Responder a este mensaje
#2 Carlos Sacristan
22/02/2010 - 18:08 | Informe spam
Perdón, me acabo de dar cuenta que no leí bien tu pregunta.

Una forma de conseguir lo que indicas podría ser así:

SELECT RIGHT ( '0' + rtrim ( CONVERT ( char(2),@sec / ( 60 * 60 ) ) ) , 2 )
+ ':' + RIGHT ( '0' + rtrim ( CONVERT ( char(2), ( @sec / 60 ) % 60 ) ) ,
2 ) + ':' + RIGHT ( '0' + rtrim ( CONVERT ( char(2),@sec % 60 ) ) , 2 )


Donde @sec es una variable con el número de segundos, claro...

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"Carlos Sacristan" wrote in message
news:
Es más fácil que lo que estás usando: simplemente utiliza CONVERT con el
estilo 108 y tendrás lo que buscas. Algo como

SELECT CONVERT(CHAR(8), tuFecha, 108) AS [hh:mm:ss]

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"fer" wrote in message
news:
Hola
Utilizo esta funcion para convertir un tiempo en segundos y pasarlo a
formato hh:mm:ss. todo funciona correctamente hasta que si el numero
convertido es de un solo digito no me pone un 0 a la izquierda. por
ejemplo.
me muestra esto. 1:9:20 cuando en realidad debería ser. 01:09:20

Muchas gracias por anticipado


CONVERT (nchar,tabla.TiempoSegundos / 3600) + N':' + CONVERT (nchar,
tabla.TiempoSegundos/ 60 - 60 * (tabla.TiempoSegundos / 3600)) + N':' +
CONVERT (nchar, tabla.TiempoSegundos - tabla.TiempoSegundos / 60 * 60)



Respuesta Responder a este mensaje
#3 L. Garcia
22/02/2010 - 18:34 | Informe spam
Hola, prueba esto a ver si te sirve:

Convert(char(8), Convert(datetime, (TiempoSegundos+0.5) / 86400.0), 108)

Saludos

"fer" escribió en el mensaje
news:
Hola
Utilizo esta funcion para convertir un tiempo en segundos y pasarlo a
formato hh:mm:ss. todo funciona correctamente hasta que si el numero
convertido es de un solo digito no me pone un 0 a la izquierda. por
ejemplo.
me muestra esto. 1:9:20 cuando en realidad debería ser. 01:09:20

Muchas gracias por anticipado


CONVERT (nchar,tabla.TiempoSegundos / 3600) + N':' + CONVERT (nchar,
tabla.TiempoSegundos/ 60 - 60 * (tabla.TiempoSegundos / 3600)) + N':' +
CONVERT (nchar, tabla.TiempoSegundos - tabla.TiempoSegundos / 60 * 60)
Respuesta Responder a este mensaje
#4 Alejandro Mesa
22/02/2010 - 21:01 | Informe spam
Carlos,

Tu idea sigue siendo valida.

SELECT CONVERT(char(8), DATEADD([second], TiempoSegundos, '19000101'), 108)
AS [hh:mm:ss]
FROM (SELECT 34567 AS TiempoSegundos UNION ALL SELECT 45678) AS T;
GO

AMB


"Carlos Sacristan" wrote:

Es más fácil que lo que estás usando: simplemente utiliza CONVERT con el
estilo 108 y tendrás lo que buscas. Algo como

SELECT CONVERT(CHAR(8), tuFecha, 108) AS [hh:mm:ss]

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil, si ambas están congeladas."
Edward V. Berard, ingeniero informático


"fer" wrote in message
news:
> Hola
> Utilizo esta funcion para convertir un tiempo en segundos y pasarlo a
> formato hh:mm:ss. todo funciona correctamente hasta que si el numero
> convertido es de un solo digito no me pone un 0 a la izquierda. por
> ejemplo.
> me muestra esto. 1:9:20 cuando en realidad debería ser. 01:09:20
>
> Muchas gracias por anticipado
>
>
> CONVERT (nchar,tabla.TiempoSegundos / 3600) + N':' + CONVERT (nchar,
> tabla.TiempoSegundos/ 60 - 60 * (tabla.TiempoSegundos / 3600)) + N':' +
> CONVERT (nchar, tabla.TiempoSegundos - tabla.TiempoSegundos / 60 * 60)

.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida