none
Suma de horas y minutos en SQL Server 2008

    Question

  • 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 ?

    Wednesday, July 04, 2012 6:54 PM

Answers

All replies

  • 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

    Wednesday, July 04, 2012 7:41 PM
  • 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.

    Thursday, July 05, 2012 5:26 AM
  • 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

    • Marked as answer by pv_isc Monday, July 09, 2012 2:46 PM
    Thursday, July 05, 2012 1:57 PM
  • Muchas gracias por su ayuda !! Problema solucionado.
    • Marked as answer by pv_isc Monday, July 09, 2012 2:44 PM
    Monday, July 09, 2012 2:44 PM