none
Suma de horas y minutos en SQL Server 2008 RRS feed

  • Pregunta

  • Hola buenas tardes !! Espero me puedan apoyar en mi siguiente duda. 

    Tengo un campo de tipo float llamado HorasTrabajo, donde por ejemplo se almacena 2.03 (hace referencia a dos horas tres minutos), 4.5 (cuatro horas cincuenta minutos), como puedo hacer la suma de esos valores, para que me arroje un valor en horas y minutos no como una suma normal ejemplo si tengo 2.50 + 2.30 el valor que quiero que me arroje la suma es 5.20 (cinco horas veinte minutos) y no un 4.80 Espero me puedan apoyar. ¿Existe alguna forma que sql lo realize directamente ?

    miércoles, 4 de julio de 2012 18:54

Respuestas

Todas las respuestas

  • Select Sum(Cast(HorasTrabajo As Int)) Horas,
           Sum(100*(HorasTrabajo-Cast(HorasTrabajo As Int))) Minutos
    From   MiTabla;
    No se cual es la razon de almacenar fechas en esta forma..

    Blog: http://about.me/GeriReshef

    miércoles, 4 de julio de 2012 19:41
  • Hola pv_isc

    En mi caso prefiero guardar el tiempo en segundos.

    Declare @t table (iSec int)
    insert into @t Values (6714)
    insert into @t Values (8341)

    Select Cast(x.Horas As nVarchar(10)) + ':' + Right('0' + Cast((x.iSec - x.horas * 3600) / 60 As nVarchar(2)), 2) As Tiempo
    From
    (
    Select iSec / 3600 As horas, iSec
    From @t
    ) As x

    Saludos

    Mauricio.

    jueves, 5 de julio de 2012 5:26
  • pv_isc, me parece que estas utilizando los tipos de datos inadecuados.

    SQL Server ya tiene tipos de datos time, date. Es decir, no uses decimales cuando la base de datos ya tiene tipos de datos especificos para manejar tiempos.

    Una vez que cambies tus datos de float a time, vas a poder usar funciones como dateadd y otras funciones de tiempo ya creadas. Estas tratando de inventar la pólvora cuando ya está inventada.

    Te paso algo de documentación sobre funciones de tiempo:

    http://msdn.microsoft.com/es-es/library/ms186819(v=sql.105).aspx

    Funciones de fecha y hora (Transact-SQL).


    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com

    • Marcado como respuesta pv_isc lunes, 9 de julio de 2012 14:46
    jueves, 5 de julio de 2012 13:57
  • Muchas gracias por su ayuda !! Problema solucionado.
    • Marcado como respuesta pv_isc lunes, 9 de julio de 2012 14:44
    lunes, 9 de julio de 2012 14:44