SQL Server - Sacar la diferencia de dias en horas

 
Vista:
sin imagen de perfil

Sacar la diferencia de dias en horas

Publicado por Sergio (4 intervenciones) el 13/10/2016 01:01:50
hola amigos

soy nuevo en esto de la programacion y tengo el siguiente problema
tengo una tabla donde tengo unos procesos de elaboracion de artesanias y cada usuario registra a que hora empezo y a que hora termino que son estos campos horaInicio ,HoraFin y Total de tiempo y lo que
quiero saver es cuanto tiempo se tardaron en elaborar una artesania y guardar ese resultado en tiempo total y que se guade en horas y minutos y si tal vez se prodria que cada vez que ingresen un nuevo dato se auto genero espero y se pueda de antemano muchas gracias por su ayuda
saludos,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Sacar la diferencia de dias en horas

Publicado por Sergio (4 intervenciones) el 13/10/2016 17:39:24
pero saca lo que se tardo solo en horas y lo necesito en horas y minutos se prodria hacer de alguna otra forma
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Sacar la diferencia de dias en horas

Publicado por Isaias (4558 intervenciones) el 13/10/2016 17:46:13
1
SELECT DATEDIFF(hh, horaInicio ,HoraFin) as Horas, datediff(mi, horaInicio ,HoraFin) as Minutos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Sacar la diferencia de dias en horas

Publicado por Sergio (4 intervenciones) el 13/10/2016 17:50:36
muchas gracias amigo y para sacar el resultado final de cuanto se tardaron como podria hacerle disculpa que te moleste esq soy nuevo en esto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Sacar la diferencia de dias en horas

Publicado por Isaias (4558 intervenciones) el 13/10/2016 17:48:43
Algo mas PROFESIONAL, crea un funcion que te regrese HORAS, MINUTOS y SEGUNDOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
CREATE FUNCTION calcularTiempo
    (
        @Date1 Datetime,
        @Date2 Datetime,
        @TYPE VARCHAR(MAX)  -- Forma en la que se va a transformar
    )                       -- 1: Formato String x horas x minutos x segundos
                            -- 2: Formato Number HH:MM:SS
 
    RETURNS VARCHAR(MAX)
    AS
    BEGIN
        DECLARE @temp VARCHAR(100)
        DECLARE @horas INT
        DECLARE @minutos INT
        DECLARE @tempMINUTOS INT
        DECLARE @segundos BIGINT
 
        SET @segundos = (
            SELECT
                datediff(SECOND,@Date1, @Date2) AS Segundos
        )
 
        SET @temp ='...'
 
        IF (@segundos < 3600) BEGIN
 
            SET @minutos =  FLOOR(@minutos / 60)
            SET @segundos = @minutos % 60
                --Según el tipo recibido lo formateo de una forma u otra
                IF @TYPE = 1
                    SET @temp = '0 Horas ' + CONVERT(VARCHAR, @minutos) + ' Minutos ' + CONVERT(VARCHAR, @segundos) + ' Segundos'
                ELSE
                    SET @temp = '00:' + CONVERT(VARCHAR, @minutos) + ':' +  CONVERT(VARCHAR, @segundos)
        END ELSE
    BEGIN
        SET @horas = FLOOR(@segundos / 3600)
        SET @tempMINUTOS = @segundos % 3600
        SET @minutos = FLOOR(@tempMINUTOS / 60) --MINUTOS FINALES
        SET @segundos = @tempMINUTOS % 60
            --Según el tipo recibido lo formateo de una forma u otra
            IF @TYPE = 1
                SET @temp = CONVERT(VARCHAR, @horas) + ' Horas ' + CONVERT(VARCHAR, @minutos) + ' Minutos ' + CONVERT(VARCHAR, @segundos) + ' Segundos'
            ELSE
                SET @temp = CONVERT(VARCHAR, @horas) + ':' + CONVERT(VARCHAR, @minutos) + ':' + CONVERT(VARCHAR, @segundos)
    END
        RETURN @temp
    END

SELECT
dbo.calcularTiempo ('2012-12-02 10:18:22.883','2012-12-03 10:20:43.060',2)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Sacar la diferencia de dias en horas

Publicado por Sergio (4 intervenciones) el 13/10/2016 19:03:11
amigo disculpa esa formula es cuando estoy recibiendo los datos desde visual o la puedo ejecutar jalando los datos desde mi tabla
pero como puedo declarar mis campos envez de los parametros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Sacar la diferencia de dias en horas

Publicado por Isaias (4558 intervenciones) el 13/10/2016 23:35:44
Veo que NO cuenta con experiencia en SQL Server.

1.- Debe crear la funcion que le pase
2.- Para ocupar dicha funcion
1
2
SELECT dbo.dbo.calcularTiempo(horaInicio, horafinal)
FROM sutabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar