Calcular horas en sql server 2000

04/04/2007 - 15:34 por rmarcelo | Informe spam
Hola, tengo que sacar la diferencia de horas entre un ingreso y una salida de
un trabajador y este resultado sumarlo para entregar el total de hrs que
trabajo durante el dia. Los ingresos y salidas pueden ser muchos, pero
siempre seran pares.

Tengo la hora de ingreso y la hora de salida en un mismo registro o fila,
pero no se como hacer que estas diferencia de horas me lo entregue en
hh:mm:ss y despues que me sume esas hh:mm:ss para el total de horas
trabajadas por dias por trabajador.

Alguna idea de como poder realizar esto. es en SQL SERVER 2000.

Gracias.
 

Leer las respuestas

#1 Carlos Camargo
04/04/2007 - 16:59 | Informe spam
Hola Marcelo,

revisate este codigo SQL (la parte que hace lo que tu deseas esta encerrada
en "--********"):

BEGIN TRAN test1
DECLARE @TotalMinutos int
SET @TotalMinutos = 0
CREATE TABLE #TmpTimeTable( Entrada DateTime, Salida DateTime )
INSERT INTO #TmpTimeTable VALUES ( GetDate(), DateAdd( hour, 4,
GetDate() ) )
INSERT INTO #TmpTimeTable VALUES ( GetDate(), DateAdd( minute, 27,
DateAdd( hour, 6, GetDate() ) ) )
INSERT INTO #TmpTimeTable VALUES ( GetDate(), DateAdd( minute, 36,
DateAdd( hour, 19, GetDate() ) ) )
SELECT * From #TmpTimeTable
*****************************************************************************************
SELECT DateDiff( minute, Entrada, Salida ) Minutos FROM #TmpTimeTable
SELECT @TotalMinutos = SUM( DateDiff( minute, Entrada, Salida )) FROM
#TmpTimeTable
SELECT @TotalMinutos TotalDeMinutos
SELECT (@TotalMinutos / 60) HorasTrabajadas, @TotalMinutos -
((@TotalMinutos/ 60)*60) MinutosTrabajados
*****************************************************************************************
DROP TABLE #TmpTimeTable
ROLLBACK TRAN test1

La funcion DateDiff the da la diferencia entre 2 fechas (con todo y
hora/minutos/etc.). Nota que al llamar a la funcion DateDiff esta usando el
parametro "minute", que indica a la funcion en que unidad queremos la
diferencia, puede ser "second", "hour", "day", etc.

Espero te sirva.

Saludos,

ccamargo


"rmarcelo" escribió en el mensaje
news:
Hola, tengo que sacar la diferencia de horas entre un ingreso y una salida
de
un trabajador y este resultado sumarlo para entregar el total de hrs que
trabajo durante el dia. Los ingresos y salidas pueden ser muchos, pero
siempre seran pares.

Tengo la hora de ingreso y la hora de salida en un mismo registro o fila,
pero no se como hacer que estas diferencia de horas me lo entregue en
hh:mm:ss y despues que me sume esas hh:mm:ss para el total de horas
trabajadas por dias por trabajador.

Alguna idea de como poder realizar esto. es en SQL SERVER 2000.

Gracias.

Preguntas similares