Sto cercando di eseguire alcuni rapporti e di dover affrontare l'intera questione delle ore di lavoro dei dipendenti che attraversano la mezzanotte. Mi viene in mente di poter dividere i record che attraversano la mezzanotte in due record, come se l'impiegato fosse scaduto a mezzanotte e contemporaneamente tornasse indietro a mezzanotte, evitando così il problema di mezzanotte.Record di ore intermedie a mezzanotte
Quindi, se ho:
EmployeeId InTime OutTime
--- ----------------------- -----------------------
1 2012-01-18 19:50:04.437 2012-01-19 03:30:02.433
Cosa pensi che sarebbe il modo più elegante per dividere questo record in questo modo:
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
E sì, ho accuratamente pensato attraverso effetti quali questo potrebbe avere sulle funzionalità esistenti ... ed è per questo che sto optando per farlo in una tabella temporanea che non influirà sulle funzionalità esistenti.
Controlla http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=42516&bcsi_scan_0070CC03028EB70D=JJykjVHNGapjNgIKjEMdLQkAAADDDLIH&bcsi_scan_filename=topic.asp non è esattamente simile. Più sulla sua soluzione basata su SQL 2k. Ma spero che possa darti alcuni suggerimenti. – vmvadivel
Quindi la sua traversata di mezzanotte ... qual è il problema ... ore totali lavorate in un dato turno? o se incrocia entrambe le date, in quale data dovrebbe apparire? – DRapp
@DRapp Ai fini di questo "rapporto" (anche se non tutti), la manodopera dovrebbe comparire nella data in cui effettivamente appartiene ... non necessariamente la data in cui il dipendente ha iniziato il proprio turno. Ecco perché penso che questa sia la soluzione migliore per farlo in un modo che i dati hanno più senso lavorare. –