none
Convertir horas, minutos y segundos en solo segundos para poder sumarlos en un Crystal reports RRS feed

  • Pregunta

  • Hola disculpen la molestia pero necesito hacer lo siguiente tengo en un reporte en crystal reports y tengo calculadas las horas totales por cada trabajador y ahora necesito poder sumar esas horas y calcular las horas que trabajo en la semana pero el problema que tengo es que en el crystal no las puedo sumar porque estan en este formato "hh:mm:ss" y ademas el campo es un string y habia pensado en pasar todo a segundos con alguna funcion y despues sumar normalmente pero he buscado e intentado los ejemplos de internet pero no me ha resultado...No se si pueden ayudarme y darme una manito con esto..llevo dos dias enteros pegado aqui....
    viernes, 27 de noviembre de 2015 15:30

Respuestas

Todas las respuestas

  • Hola.

    Create Table #temp (Horas Time)

    Insert Into #temp Values (Convert(time,GETDATE()))
    Insert Into #temp Values (Convert(time,GETDATE()))



    SELECT   sum( DATEPART(SECOND, Horas) + 60 * 
                  DATEPART(MINUTE, Horas) + 3600 * 
                  DATEPART(HOUR, Horas ) 
                ) as 'TotalTime' 
    FROM #temp

    Si tus datos son varchar tendrias que convertirlos a time.

    Saludos.

    CMAPM.


    DBA SQL Server Santiago/Chile

    viernes, 27 de noviembre de 2015 16:09
  • Saludos,

    Podrías probar así:

    DECLARE @Hora TIME;
    
    SET @Hora = '01:30:00';
    SELECT DATEDIFF(SECOND,0,@Hora) AS Segundos;

    Si tus datos están en el formato HH:MM:SS y son de tipo string SQL Server hará una conversión implícita, si tienes una pregunta no dudes en hacerla.


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Steve Morrison

    • Editado Nathán XS viernes, 27 de noviembre de 2015 20:09
    viernes, 27 de noviembre de 2015 20:02
  • Chicos les agradezco sus respuestas pero de verdad no entiendo como hacerlo, mira estoy trabajando en C# y usando el crystal reports, yo paso todos los datos de las horas las cuales son string y necesito sumar ese campo Total de horas trabajadas para tenerlas por semanas pero no se como hacerlo, intente pasar los datos a ctime y sumarlos pero no me deja llevo el fin de semanaa en esto y de verdad no se que mas hacer.

    Aqui pongo una imagen del reporte que cree en crystal y lo que necesito donde dice total atrasos por semana colocar la suma de los dos primeros dias y asi sucesivamente..


    Si alguien me puede ayudar por favor me estoy desesperando con esto no tengo mucha experiencia con C# y crystal pero lamentablemente debo hacerlo y me falta poder sumar las horas para terminar el proyecto-....

    Se los agradeceria mucho...

    lunes, 30 de noviembre de 2015 1:22
  • Con el Crystal no podrás hacer nada. Te conviene calcular el total en la consulta que crea el dataset que usas  para el reporte. Si usas SqlServer puedes utilizar los buenos ejemplos que te pasaron antes. Caso contrario, aunque no conozco C#, seguro que tiene una función para manipular cadenas. Toma la porción de la fecha correspondiente a las horas, minutos y segundos. Convierte las dos primeras en segundos y haz la suma.

    Eso es en la consulta para el dataset del reporte.

    suerte.

     
    lunes, 30 de noviembre de 2015 14:43
  • Si pudieras convertir esa columna en tipo de dato Time, podrías hacer lo que yo hice que lo puedes encontrar en:

    https://social.msdn.microsoft.com/Forums/es-ES/426bfda9-641e-49e6-aaa2-f0c1ffa3c32d/sumar-columna-time7?forum=sqlserveres


    Roy Sillerico

    lunes, 30 de noviembre de 2015 15:22