15/08/2009, 20:29
|
| Colaborador | | Fecha de Ingreso: enero-2002 Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años Puntos: 146 | |
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos Esta muy sencilla, amigo, verás, supongo que lo único difícil son las intrucciones dateadd y datediff, pero igual explicaré todo el ciclo: Cita: --Ciclo que recorrerá cada una de las semanas entre la fecha inicial y final
WHILE @FechaActual < @FechaFin
BEGIN
/*
DATEDIFF(wk,0,@FechaActual) regresa el número de semanas entre el inicio del contador de SQL Sever y la semana actual, esto es por utilizar el datepart Week o wk, luego para obtener el lunes de la semana actual se le pide a SQL que regrese el semana entre la fecha inicial del SQL (indicada por el cero) y el total de semanas que han transcurrido, como el datepart es week nuevamente esto nos traerá la fecha inicial de esa semana
*/
SELECT @FechaLunes = DATEADD(wk, DATEDIFF(wk,0,@FechaActual), 0)
/*
Si la fecha obtenida esta dentro del rango inicial entonces (en mi ejemplo, el 1 de enero esta a mediados de semana, entonces el lunes de esa semana no esta dentro del rango, este if hace que no se cuente.
*/
IF @FechaLunes > @FechaIni
BEGIN
SET @NumLunes = @NumLunes + 1
PRINT CAST(@NumLunes as varchar) + ') '+ CAST(@FechaLunes as varchar)
END
/*
@fechaActual es variable que se incrementara con semanas, que solo nos interesa el número de inicios de semana, esto se hace hasta que nos salgamos del rango final y voalá
*/
SELECT @FechaActual = DATEADD(Week, 1, @FechaActual)
END
Saludos |