Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/02/2006, 12:33
Avatar de rats
rats
 
Fecha de Ingreso: septiembre-2005
Mensajes: 23
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Solucion

Hola Jose, me tome la libertad de crear un Stored Procedure (SP) que te calcula el dato que quieres, es posiblemente una forma de muchas de hacerlo, solo tienes que darle un copy paste y asi como esta compilarlo en tu query analizer y ya. Lo unico que tienes que hacer es pasarle como parametro la fecha que quieres que te calcule la semana en la que se encuentra.

Una cosa importante, este SP te calcula la semana tomando en cuenta que la semana comienza en domingo y termina en sabado, es por eso que los meses que empiecen en finde smeana, viernes, sabado o domingo, y sean de 31 dias van a ser los que tengan 6 semanas.

Checalo a ver si te sirve, saludos.

Código:
-- Semana_del_Mes 'dec 30 2006'
Create Proc Semana_del_Mes
	@Fecha	datetime
As

declare @Fecha_Actual 	datetime,
	@Anio		int,
	@PrimerDia	datetime,
	@Semana_Anio	int,
	@Mes_Anio	int,
	@FechaMesAnt	datetime,
	@Mes_Ini	datetime,
	@Mes_Fin	datetime,
	@Dias_Mes	int,
	@Semana_Mes	int


Set 	@Fecha_Actual 	= Convert(datetime, Convert(varchar(12), @Fecha))
Set 	@Anio		= datepart(yy, @Fecha_Actual)
Set 	@PrimerDia      = Convert(datetime, 'jan 1 ' + Convert(varchar(5), @Anio))
Set 	@Mes_Anio 	= datepart(m, @Fecha_Actual)
Set 	@Semana_Anio 	= datepart(wk, @Fecha_Actual)
Set 	@Mes_Ini	= DateAdd(m, @Mes_Anio-1, @PrimerDia)
Set 	@Mes_Fin 	= DateAdd(y, -1, DateAdd(m, @Mes_Anio, @PrimerDia))
Set	@Dias_mes	= datepart(dd, @Fecha)
Set 	@Semana_Mes	= case when datediff(wk, @Mes_Ini, @Fecha) = 0 and @Dias_Mes <=7 then 1
				when datediff(wk, @Mes_Ini, @Fecha) = 1 and @Dias_Mes <=14 then 2
				when datediff(wk, @Mes_Ini, @Fecha) = 2 and @Dias_Mes <=21 then 3
				when datediff(wk, @Mes_Ini, @Fecha) = 3 and @Dias_Mes <=28 then 4
				when datediff(wk, @Mes_Ini, @Fecha) = 4 and @Dias_Mes <=35 then 5
				when datediff(wk, @Mes_Ini, @Fecha) = 5 and @Dias_Mes <=35 then 6
				end
Select 	Fecha_Actual 	= @Fecha_Actual,
	Semana_Anio 	= @Semana_Anio,
	Mes 		= @Mes_Anio,
	Mes_Ini 	= @Mes_Ini,
	Mes_Fin 	= @Mes_Fin,
	Dias_mes 	= @Dias_mes,
	Semana_Mes	= @Semana_Mes