Discussion:
Cómo puedo calcular el tiempo transcurrido entre dos fechas ...
(demasiado antiguo para responder)
Jom
2008-03-03 16:42:01 UTC
Permalink
... en función de un horario con intervalos.

Es decir, cuanto tiempo ha transcurrido entre el 12/11/2007 12:30 y el
25/11/2007 17:16 teniendo sólo en cuenta sólo de Lunes a Viernes y las horas
comprendidas entre las 08:00 y las 14:00; y las comprendidas entre las 15:30
y las 19:00.

Evidentemente programando un cursor y mucho código se puede, pero el
rendimiento es muy malo y pensé que quizás existe alguna función desarrollada
que todo el mundo conoce menos yo !!!

Un saludo y gracias de antemano.
Jom.
Luis Tarzia
2008-03-03 18:26:24 UTC
Permalink
Te creas una funcion propia en donde le pasas el desde y el hasta y ahi
haces un loop

while @fechadesde <= @ fechahasta
begin
tomas el tipo de dia con datepart(wk) y dependiendo de si es lunes a viernes
entras al if
y ahi tomas el datediff entre las 14 y las 8 y entre las 19 y 15:30
considerando que la fecha hasta no se escape de esas horas,en ese caso tomas
la hora de la fecha hasta
Post by Jom
... en función de un horario con intervalos.
Es decir, cuanto tiempo ha transcurrido entre el 12/11/2007 12:30 y el
25/11/2007 17:16 teniendo sólo en cuenta sólo de Lunes a Viernes y las horas
comprendidas entre las 08:00 y las 14:00; y las comprendidas entre las 15:30
y las 19:00.
Evidentemente programando un cursor y mucho código se puede, pero el
rendimiento es muy malo y pensé que quizás existe alguna función desarrollada
que todo el mundo conoce menos yo !!!
Un saludo y gracias de antemano.
Jom.
Maxi Accotto
2008-03-04 01:35:05 UTC
Permalink
Hola, no hay una funcion directa con esa regla de negocio que usted esta
necesitando.

Debera entonces crear una funcion definida del usuario (CREATE FUNCTION) que
haga ese calculo
--
-----------------------------
Microsoft MVP SQLServer
www.sqltotalconsulting.com
-------------------------------
Post by Jom
... en función de un horario con intervalos.
Es decir, cuanto tiempo ha transcurrido entre el 12/11/2007 12:30 y el
25/11/2007 17:16 teniendo sólo en cuenta sólo de Lunes a Viernes y las horas
comprendidas entre las 08:00 y las 14:00; y las comprendidas entre las 15:30
y las 19:00.
Evidentemente programando un cursor y mucho código se puede, pero el
rendimiento es muy malo y pensé que quizás existe alguna función desarrollada
que todo el mundo conoce menos yo !!!
Un saludo y gracias de antemano.
Jom.
Luis Mata
2008-03-04 22:19:29 UTC
Permalink
datediff()
Post by Jom
... en función de un horario con intervalos.
Es decir, cuanto tiempo ha transcurrido entre el 12/11/2007 12:30 y el
25/11/2007 17:16 teniendo sólo en cuenta sólo de Lunes a Viernes y las horas
comprendidas entre las 08:00 y las 14:00; y las comprendidas entre las 15:30
y las 19:00.
Evidentemente programando un cursor y mucho código se puede, pero el
rendimiento es muy malo y pensé que quizás existe alguna función desarrollada
que todo el mundo conoce menos yo !!!
Un saludo y gracias de antemano.
Jom.
Luis Tarzia
2008-03-05 00:44:56 UTC
Permalink
Sola no le va a dar el resultado,el necesita filtrar sabados y domingos y
determinadas horas
Post by Luis Mata
datediff()
Post by Jom
... en función de un horario con intervalos.
Es decir, cuanto tiempo ha transcurrido entre el 12/11/2007 12:30 y el
25/11/2007 17:16 teniendo sólo en cuenta sólo de Lunes a Viernes y las horas
comprendidas entre las 08:00 y las 14:00; y las comprendidas entre las 15:30
y las 19:00.
Evidentemente programando un cursor y mucho código se puede, pero el
rendimiento es muy malo y pensé que quizás existe alguna función desarrollada
que todo el mundo conoce menos yo !!!
Un saludo y gracias de antemano.
Jom.
Luis Mata
2008-03-06 15:21:07 UTC
Permalink
asi es pero no le va a salir con un solo datediff sino crear una funcion con
esto.
Post by Luis Tarzia
Sola no le va a dar el resultado,el necesita filtrar sabados y domingos y
determinadas horas
Post by Luis Mata
datediff()
Post by Jom
... en función de un horario con intervalos.
Es decir, cuanto tiempo ha transcurrido entre el 12/11/2007 12:30 y el
25/11/2007 17:16 teniendo sólo en cuenta sólo de Lunes a Viernes y las horas
comprendidas entre las 08:00 y las 14:00; y las comprendidas entre las 15:30
y las 19:00.
Evidentemente programando un cursor y mucho código se puede, pero el
rendimiento es muy malo y pensé que quizás existe alguna función desarrollada
que todo el mundo conoce menos yo !!!
Un saludo y gracias de antemano.
Jom.
Loading...