Estoy tratando de ejecutar algunos informes y tener que lidiar con todo el problema de horas de trabajo de los empleados que cruzan la medianoche. Sin embargo, se me ocurre que podría dividir los registros que cruzan la medianoche en dos registros, como si el empleado marcara la salida a medianoche y simultáneamente volviera a la medianoche, evitando así el problema de la medianoche.Registros de tiempo dividido a través de la medianoche
Así que si tengo:
EmployeeId InTime OutTime
--- ----------------------- -----------------------
1 2012-01-18 19:50:04.437 2012-01-19 03:30:02.433
¿Qué crees que sería la forma más elegante para dividir este registro, así:
EmployeeId InTime OutTime
--- ----------------------- -----------------------
1 2012-01-18 19:50:04.437 2012-01-19 00:00:00.000
1 2012-01-19 00:00:00.000 2012-01-19 03:30:02.433
Y sí, he pensado a fondo a través de lo efectos esto podría tener en la funcionalidad existente ... razón por la cual estoy optando por hacer esto en una tabla temporal que no afectará la funcionalidad existente.
Salida http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=42516&bcsi_scan_0070CC03028EB70D=JJykjVHNGapjNgIKjEMdLQkAAADDDLIH&bcsi_scan_filename=topic.asp no es exactamente similar. Más sobre su solución basada en SQL 2k. Pero espero que pueda darte algunos consejos. – vmvadivel
Así que su cruce de la medianoche ... ¿cuál es el problema ... el total de horas trabajadas en un turno determinado? o si cruza ambas fechas, ¿en qué fecha debe aparecer? – DRapp
@DRapp Para los fines de "este" informe (aunque no todos) el trabajo debe aparecer en la fecha en que realmente pertenece ... no necesariamente la fecha en que el empleado comenzó su turno. Es por eso que creo que esta es la mejor solución para lograrlo de una manera que los datos tengan más sentido para trabajar. –