Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/08/2009, 15:00
Avatar de flaviovich
flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 5 meses
Puntos: 39
Respuesta: Calcular cantidad de dias lunes de fecha uno a fecha dos

Bueno, esta es mi version:
Código sql:
Ver original
  1. ALTER FUNCTION CuantosDiasSemana
  2. (
  3. @FechaInicio datetime,
  4. @FechaFin datetime,
  5. @DiaSemana tinyint = 1
  6. )
  7. RETURNS INT
  8. AS
  9. BEGIN
  10.  
  11. IF @FechaInicio > @FechaFin RETURN 0
  12.  
  13. DECLARE @RangoFechas TABLE(fecha datetime)
  14. DECLARE @Dia datetime
  15.  
  16. SET @Dia = @FechaInicio
  17.  
  18. while @Dia <= @FechaFin
  19. BEGIN
  20.     INSERT INTO @RangoFechas
  21.     SELECT @Dia
  22.  
  23.     SET @Dia = @Dia + 1
  24. END
  25.  
  26. RETURN (
  27.     SELECT SUM(CASE WHEN datepart(weekday, fecha) = @DiaSemana THEN 1 ELSE 0 END)
  28.     FROM @RangoFechas
  29. )
  30.  
  31. END
El llamado:
Código sql:
Ver original
  1. DECLARE @Dia1 INT
  2.  
  3. SET @Dia1 = @@DATEFIRST
  4.  
  5. SET DATEFIRST 1
  6.  
  7. SELECT dbo.CuantosDiasSemana('20090817','20090831',7)
  8.  
  9. SET DATEFIRST @Dia1
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.