none
Restar Fecha en sql server RRS feed

  • Pregunta

  • Buenas tardes, tengo una consulta, acerca de como podria restar la fecha de salida menos la fecha de entrada, segun el nombre del trabajador en la imagen que muestro a continuacion.

    martes, 7 de agosto de 2018 21:44

Respuestas

  • Hola Abram N. Cueva:

    Para las diferencias entre fechas, se utiliza la función DateDiff

    CREATE TABLE d1
    (id                 INT,
     fecha_hora_entrada DATETIME,
     fecha_hora_salida  DATETIME
    );
    GO
    INSERT INTO d1
    (id,
     fecha_hora_entrada,
     fecha_hora_salida
    )
    VALUES
    (1,
     '20180803 17:11:24.000',
     '20180803 17:55:33.300'
    ),
    (1,
     '20180803 09:05:04.000',
     '20180803 19:00:33.300'
    ),
    (1,
     '20180803 10:26:12.000',
     '20180803 18:51:33.300'
    ),
    (1,
     '20180803 14:31:33.000',
     '20180803 19:12:33.300'
    ),
    (1,
     '20180803 15:44:55.000',
     '20180803 21:44:33.300'
    );
    GO
    SELECT id,
           fecha_hora_entrada,
           fecha_hora_salida,
           DATEDIFF(minute, fecha_hora_entrada, fecha_hora_salida) AS diferencia_minutos,
           DATEDIFF(hour, fecha_hora_entrada, fecha_hora_salida) AS diferencia_horas
    FROM d1;
    

    miércoles, 8 de agosto de 2018 5:24

Todas las respuestas

  • Hola Abram N. Cueva:

    Para las diferencias entre fechas, se utiliza la función DateDiff

    CREATE TABLE d1
    (id                 INT,
     fecha_hora_entrada DATETIME,
     fecha_hora_salida  DATETIME
    );
    GO
    INSERT INTO d1
    (id,
     fecha_hora_entrada,
     fecha_hora_salida
    )
    VALUES
    (1,
     '20180803 17:11:24.000',
     '20180803 17:55:33.300'
    ),
    (1,
     '20180803 09:05:04.000',
     '20180803 19:00:33.300'
    ),
    (1,
     '20180803 10:26:12.000',
     '20180803 18:51:33.300'
    ),
    (1,
     '20180803 14:31:33.000',
     '20180803 19:12:33.300'
    ),
    (1,
     '20180803 15:44:55.000',
     '20180803 21:44:33.300'
    );
    GO
    SELECT id,
           fecha_hora_entrada,
           fecha_hora_salida,
           DATEDIFF(minute, fecha_hora_entrada, fecha_hora_salida) AS diferencia_minutos,
           DATEDIFF(hour, fecha_hora_entrada, fecha_hora_salida) AS diferencia_horas
    FROM d1;
    

    miércoles, 8 de agosto de 2018 5:24
  • Hola, estuve haciendo unos cambios a la consulta, para que las entradas y las salidas me las muestra, como ven en la siguiente imagen

    quiziera saber como podria hacer para que la fecha de salida aparezca en la misma fila de fecha de entrada.

    Mi codigo es el siguiente:

    SELECT        dbo.Trabajador.Id_Trabajador AS ID_TRABAJADOR,

    dbo.Trabajador.Nombre + ' ' + dbo.Trabajador.Apellido_Pat + ' ' + dbo.Trabajador.Apellido_Mat AS NOMBRE,

     dbo.Trabajador.Nro_Documento AS [DOC.],

    dbo.Profesion_Ocupacion.Prof_Ocup AS PROF_OCUPACION, dbo.Sucursal.Sucursal, dbo._Asistencia.Valido,

    (CASE WHEN Entrada_Salida = 'ENTRADA' THEN [FechaAsistencia] ELSE 0 END) AS ENTRADA,

    (CASE WHEN Entrada_Salida = 'SALIDA' THEN [FechaAsistencia] ELSE 0 END) AS SALIDA

    FROM            dbo._Asistencia INNER JOIN

    dbo.Trabajador ON dbo._Asistencia.Id_Trabajador = dbo.Trabajador.Id_Trabajador INNER JOIN

    dbo.Sucursal ON dbo.Sucursal.Id_Sucursal = dbo.Trabajador.Id_Sucursal INNER JOIN

    dbo.Profesion_Ocupacion ON dbo.Profesion_Ocupacion.Id_prof_ocup = dbo.Trabajador.Id_prof_ocup


    jueves, 9 de agosto de 2018 21:57
  • Hola Abram N. Cueva:

    Esta consulta no tiene nada que ver con la primera que ha realizado. (Restar fecha en SQL Server)

    Introdúzcala en otro hilo, para que pueda ser mejor atendida,

    Gracias

    viernes, 10 de agosto de 2018 4:16