none
convertir a float segundos RRS feed

  • Pregunta

  • hola,

    Necesito convertir en tipo de datos flotante los segundos que estan en int.

    por ejemplo si tengo 3600seg en flotante seria 1.0 donde el 1  representa que es una hora y 0 segundos

    Como puede hacerlo?

    viernes, 6 de febrero de 2015 16:07

Respuestas

  • No creo entender completamente lo que busca porque el ejemplo 1.0 es ambiguo:  Puede ser, como usted dice, 1 hora y 0 segundos, pero podría ser poque A.  es una construcción textual de las horas y los segundos separados por un punto, o B. es un valor de punto flotante cuya parte decimal tiene el valor cero y por lo tanto es una hora exacta, que definitivamente es compatible con la aserción "y 0 segundos".

    Como menciona "dato flotante" voy a asumir que es B.

    Declare @segundos int = 3600;
    Declare @horas float = Cast(@segundos As float) / 3600;
    
    Select @horas;


    Jose R. MCP
    Code Samples

    • Marcado como respuesta triplex42 viernes, 6 de febrero de 2015 18:20
    viernes, 6 de febrero de 2015 16:51
  • Hola,

    Si quieres obtener las horas que corresponden a "n" segundos, bastará con dividir la cantidad de segundos entre 3600 (cantidad de segundos que tiene una hora). Los segundos restantes los puedes obtener del resto de la división.

    declare @segundos int = 3800;
    select @segundos/3600 Horas, @segundos % 3600 Segundos

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    • Marcado como respuesta triplex42 viernes, 6 de febrero de 2015 18:20
    viernes, 6 de febrero de 2015 17:02

Todas las respuestas

  • No creo entender completamente lo que busca porque el ejemplo 1.0 es ambiguo:  Puede ser, como usted dice, 1 hora y 0 segundos, pero podría ser poque A.  es una construcción textual de las horas y los segundos separados por un punto, o B. es un valor de punto flotante cuya parte decimal tiene el valor cero y por lo tanto es una hora exacta, que definitivamente es compatible con la aserción "y 0 segundos".

    Como menciona "dato flotante" voy a asumir que es B.

    Declare @segundos int = 3600;
    Declare @horas float = Cast(@segundos As float) / 3600;
    
    Select @horas;


    Jose R. MCP
    Code Samples

    • Marcado como respuesta triplex42 viernes, 6 de febrero de 2015 18:20
    viernes, 6 de febrero de 2015 16:51
  • Hola,

    Si quieres obtener las horas que corresponden a "n" segundos, bastará con dividir la cantidad de segundos entre 3600 (cantidad de segundos que tiene una hora). Los segundos restantes los puedes obtener del resto de la división.

    declare @segundos int = 3800;
    select @segundos/3600 Horas, @segundos % 3600 Segundos

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    • Marcado como respuesta triplex42 viernes, 6 de febrero de 2015 18:20
    viernes, 6 de febrero de 2015 17:02
  • Hola,

    Eso es mismo lo que quiero.

    Ahora si es posible desearia convertir un formato hora digamos por ejemplo 1:30 (una hora y media) a segundos que serian 5400

    viernes, 6 de febrero de 2015 18:20
  • Hola,

    ¿Qué tipo de dato es 1:30? La lógica es la misma.

    declare @hora time = '1:30'
    select datepart(minute, @hora) * 60 + datepart(hour, @hora) * 3600 Segundos

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    viernes, 6 de febrero de 2015 18:30