Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/08/2009, 20:29
Avatar de Myakire
Myakire
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