Sumar fechas y horas con sql

20/11/2006 - 14:59 por Manolo | Informe spam
Hola,

Tengo una tabla con los siguientes campos:

Empleado, tipo, Fecha.

El campo fecha contiene una fecha y una hora y el campo tipo es 1 o 2,
que corresponde a entrada y salida.

Lo que me gustaría hacer, es sumar las salidas y restarle la suma de las
entradas para que me de como resultado el tiempo que el empleado permanece
en su puesto de trabajo.

¿Alguien tiene alguna idea?

Gracias y un saludo.

Preguntas similare

Leer las respuestas

#1 Maxi
20/11/2006 - 15:07 | Informe spam
Hola, revisa la funcion Datediff


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Manolo" escribió en el mensaje
news:
Hola,

Tengo una tabla con los siguientes campos:

Empleado, tipo, Fecha.

El campo fecha contiene una fecha y una hora y el campo tipo es 1 o 2,
que corresponde a entrada y salida.

Lo que me gustaría hacer, es sumar las salidas y restarle la suma de
las entradas para que me de como resultado el tiempo que el empleado
permanece en su puesto de trabajo.

¿Alguien tiene alguna idea?

Gracias y un saludo.

Respuesta Responder a este mensaje
#2 Alejandro Mesa
20/11/2006 - 15:18 | Informe spam
Manolo,

Chequea la funcion DATEDIFF en los libros en linea.

select
userid,
avg(datediff(second, a.fecha, b.fecha)) as avg_seconds
from
dbo.t1 as a
inner join
dbo.t1 as b
on a.userid = b.userid
and a.tipo = 1
and b.tipo = 2
and b.fecha = (
select min(c.fecha)
from dbo.t1 as c
where c.userid = a.userid and c.tipo = 2 and c.fecha > a.fecha
)
go

Puedes calcular cuantos segundos como promedio permanece cada usuario en su
puesto. Puedes convertir el resultado final a horas y minutos.


AMB

"Manolo" wrote:

Hola,

Tengo una tabla con los siguientes campos:

Empleado, tipo, Fecha.

El campo fecha contiene una fecha y una hora y el campo tipo es 1 o 2,
que corresponde a entrada y salida.

Lo que me gustaría hacer, es sumar las salidas y restarle la suma de las
entradas para que me de como resultado el tiempo que el empleado permanece
en su puesto de trabajo.

¿Alguien tiene alguna idea?

Gracias y un saludo.



Respuesta Responder a este mensaje
#3 Alejandro Mesa
20/11/2006 - 15:21 | Informe spam
Corrección:

...
group by
a.userid
go


AMB


"Alejandro Mesa" wrote:

Manolo,

Chequea la funcion DATEDIFF en los libros en linea.

select
userid,
avg(datediff(second, a.fecha, b.fecha)) as avg_seconds
from
dbo.t1 as a
inner join
dbo.t1 as b
on a.userid = b.userid
and a.tipo = 1
and b.tipo = 2
and b.fecha = (
select min(c.fecha)
from dbo.t1 as c
where c.userid = a.userid and c.tipo = 2 and c.fecha > a.fecha
)
go

Puedes calcular cuantos segundos como promedio permanece cada usuario en su
puesto. Puedes convertir el resultado final a horas y minutos.


AMB

"Manolo" wrote:

> Hola,
>
> Tengo una tabla con los siguientes campos:
>
> Empleado, tipo, Fecha.
>
> El campo fecha contiene una fecha y una hora y el campo tipo es 1 o 2,
> que corresponde a entrada y salida.
>
> Lo que me gustaría hacer, es sumar las salidas y restarle la suma de las
> entradas para que me de como resultado el tiempo que el empleado permanece
> en su puesto de trabajo.
>
> ¿Alguien tiene alguna idea?
>
> Gracias y un saludo.
>
>
>
Respuesta Responder a este mensaje
#4 Manolo
22/11/2006 - 09:32 | Informe spam
Hola,

Gracias a los dos por la respuesta... fíjate lo fácil que era, lo tenía
en los morros y no me enteraba... gracias.

"Alejandro Mesa" escribió en el
mensaje news:
Corrección:

...
group by
a.userid
go


AMB


"Alejandro Mesa" wrote:

Manolo,

Chequea la funcion DATEDIFF en los libros en linea.

select
userid,
avg(datediff(second, a.fecha, b.fecha)) as avg_seconds
from
dbo.t1 as a
inner join
dbo.t1 as b
on a.userid = b.userid
and a.tipo = 1
and b.tipo = 2
and b.fecha = (
select min(c.fecha)
from dbo.t1 as c
where c.userid = a.userid and c.tipo = 2 and c.fecha > a.fecha
)
go

Puedes calcular cuantos segundos como promedio permanece cada usuario en
su
puesto. Puedes convertir el resultado final a horas y minutos.


AMB

"Manolo" wrote:

> Hola,
>
> Tengo una tabla con los siguientes campos:
>
> Empleado, tipo, Fecha.
>
> El campo fecha contiene una fecha y una hora y el campo tipo es 1 o
> 2,
> que corresponde a entrada y salida.
>
> Lo que me gustaría hacer, es sumar las salidas y restarle la suma
> de las
> entradas para que me de como resultado el tiempo que el empleado
> permanece
> en su puesto de trabajo.
>
> ¿Alguien tiene alguna idea?
>
> Gracias y un saludo.
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida