Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Fecha en que empieza una semana!!!

Estas en el tema de Fecha en que empieza una semana!!! en el foro de SQL Server en Foros del Web. Buen dia a todos Me gustaria saber si alguien sabe de alguna funcion o "script" que me permita obtener la fecha en la que inicia ...
  #1 (permalink)  
Antiguo 17/09/2008, 14:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 80
Antigüedad: 17 años, 1 mes
Puntos: 1
Información Fecha en que empieza una semana!!!

Buen dia a todos

Me gustaria saber si alguien sabe de alguna funcion o "script" que me permita obtener la fecha en la que inicia una semana; por ejemplo, las semana del mes de septiembre de 2008, son como sigue:

semana 36, empieza el 31 Ago 08 y termina el 06 Sep 08
semana 37, empieza el 07 Sep 08 y termina el 13 Sep 08
semana 38, empieza el 14 Sep 08 y termina el 20 Sep 08
semana 39, empieza el 21 Sep 08 y termina el 27 Sep 08
etc.... (asumiendo que las semanas empiezan en Domingo)

Bien el punto, como obtener la fecha en la que inicia tal o cual semana; de antemano, gracias a todos por su colaboracion!!!!
  #2 (permalink)  
Antiguo 19/09/2008, 04:32
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Respuesta: Fecha en que empieza una semana!!!

Bueno, no tengo el script, pero puedes jugar con las funciones:

Para @UnaFecha dada

Código:
-- Obtiene el dia de la semana de @UnaFecha
Set @Dia = DATEPART(dw, @UnaFecha)

If @Dia = @@DATEFIRST
  --ES EL PRIMER DIA
  Set @FechaInicioSemana = @UnaFecha
Else
  Set @FechaInicioSemana = DATEADD(dd, -(@Dia-@DistanciaAlComienzoDeLaSemana), @UnaFecha)
@@DATEFIRST Es el primer dia de la semana, que puede ser domingo o lunes segun la configuración del servidor

Lo que esté en rojo, resta @DistanciaAlComienzoDeLaSemana dias a la fecha, esto depende del valor de @@DATEFIRST, por ejemplo, si @@DATEFIRST es 1 (lunes), a cualquier dia habria que restarle (@Dia-1), por ejemplo, a un miercoles (@Dia=3) habria que restarle 2 para obtener el lunes. Pero si @@DATEFIRST es 7 (domingo), habria que restarle 4 (@Dia-7)*(-1) (ya que sale valor negativo, y si resta un valro negativo en realidad lo suma...

Bueno, esto último igual me quedó un poco lioso
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.