Convertir entero en hh:mm:ss

Convertir entero en hh:mm:ss

Cuando se trata de medir tiempo, por ejemplo el tiempo que se tarda en resolver una incidencia, o el tiempo que se tarda en contestar una llamada, por regla general los valores se guardan en segundos.

De la misma manera, calculamos la diferencia entre dos horas, el resultado lo obtendremos en segundos. 

Sin embargo, en muchos casos, nos encontraremos ante la necesidad de mostrar un número entero en segundos con un formato tipo  ‘hh:mm:ss’

Para lograrlo recurriremos a la función DateAdd, aunque también es posible obtener el mismo resultado con la función Cast.

Mediante DateAdd

La finalidad de esta función de SQL Server es la de añadir un intervalo de tiempo a un valor con formato fecha. Aunque también nos permite generar a partir de un valor numérico (int) un valor de tipo fecha (date), y puede resultar de gran utilidad en escenarios donde necesitamos generar datos aleatorios en ese formato.

La sintaxis de la función es la siguiente:

DATEADD (datepart , number , date )

Siendo datepart (yyyy, m, d, h, s…) la parte de la fecha (date) donde se agregará el valor numérico entero (number).

A continuación mostraremos un ejemplo donde sumaremos y restaremos 30 segundos a una fecha indicada y a otra sin especificar.

Mediante Cast

Aunque la función DateAdd nos facilitó la conversión que necesitábamos, también es posible obtener el mismo resultado mediante la función Cast, cuya sintaxis es la siguiente:

CAST (expression AS data_type [ (length) ])

Siendo expression cualquier expresión válida, data_type el tipo de datos de destino, y length un número entero opcional que especifica la longitud del tipo de datos de destino (el valor predeterminado es 30).

En el siguiente código podréis comprobar el uso de la función Cast junto a la función DateAdd. Para la primera fue necesario un cálculo previo.

Seguramente tendréis alternativas a este tipo de conversión. Desde aquí os animamos a que las compartáis con todos nosotros.

Podéis encontrar más información en:

Sobre el autor

Xavier Plaza:

3 Comments

  1. Unknown

    septiembre 24, 2018
    Responder

    Buen dia,

    Si solo quiero hh:mm:ss en el resultado que tendria que agregar?

    Saludos.

  2. Isaias Castillo

    diciembre 10, 2020
    Responder

    SELECT right(CONVERT(VARCHAR, dateadd(s, 510,0), 120), 5)
    -- 08:30

  3. Jesus Martinez

    enero 10, 2023
    Responder

    Hola.
    Como puedo convertir 25/01/2023 14:30 a 870 minutos?
    Muchas gracias

Quieres compartir tus impresiones?

Tu dirección de correo no será publicada. Los campos obligatorios se marcan con *

Deja una respuesta