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

Operación con fechas.Extraer datos de la semana vigente.

Estas en el tema de Operación con fechas.Extraer datos de la semana vigente. en el foro de SQL Server en Foros del Web. Hola a todos, necesito hacer una consulta para extaer de una tabla de noticias todos los datos desde el lunes de la semana en la ...
  #1 (permalink)  
Antiguo 06/11/2006, 04:46
 
Fecha de Ingreso: octubre-2006
Mensajes: 127
Antigüedad: 18 años, 1 mes
Puntos: 0
Operación con fechas.Extraer datos de la semana vigente.

Hola a todos, necesito hacer una consulta para extaer de una tabla de noticias todos los datos desde el lunes de la semana en la que estamos hasta el viernes.

y en otro fichero todas las noticias anteriores a la semana vigente.

Sabeís alguna funcion para poder hacerlo.

Select *from noticias where ..... (aquí es donde no seguir)

Un saludo a todos.
  #2 (permalink)  
Antiguo 06/11/2006, 04:51
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 21 años
Puntos: 5
Hola chikitika,

Te recomiendo que leas este artículo con calma:

http://www.microsoft.com/spanish/msd...ces/art157.asp

Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #3 (permalink)  
Antiguo 06/11/2006, 05:23
 
Fecha de Ingreso: octubre-2006
Mensajes: 127
Antigüedad: 18 años, 1 mes
Puntos: 0
Gracias Korku, pero no encuentro ninguna función que me permita sacar la semana en la que estamos.

gracias
  #4 (permalink)  
Antiguo 06/11/2006, 05:29
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 21 años
Puntos: 5
Bueno, me imagino que la tabla que tienes diseñada tendrá algún campo fecha...

Mira esta consulta:

Código:
SELECT * FROM tabla WHERE fecha >=CONVERT(DATETIME,"tufecha",102) AND fecha < CONVERT(DATETIME,"tufecha",102)
Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #5 (permalink)  
Antiguo 06/11/2006, 05:32
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 21 años
Puntos: 5
Más ejemplos de consultas de este tipo:

Código:
SELECT
  rc_namespace as espacio_nombre,
  COUNT(rc_namespace) as ediciones,
  COUNT(rc_namespace) / 7 as promedio
WHERE TO_DAYS(NOW()) - TO_DAYS(rc_timestamp) <= 7
GROUP BY rc_namespace
Código:
SELECT rc_user_text as usuario, COUNT(rc_user_text) as ediciones
FROM recentchanges
WHERE TO_DAYS(NOW()) - TO_DAYS(rc_timestamp) <= 7
GROUP BY rc_user_text
ORDER BY ediciones DESC
Código:
SELECT COUNT(rc_title) as borrados
FROM recentchanges
WHERE rc_title = 'Registro_de_borrados'
AND rc_namespace=4
AND TO_DAYS(NOW()) - TO_DAYS(rc_timestamp) <= 7
GROUP BY rc_title
Saludos :)
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #6 (permalink)  
Antiguo 06/11/2006, 14:32
Avatar de jose rayado  
Fecha de Ingreso: mayo-2005
Ubicación: Monterrey
Mensajes: 35
Antigüedad: 19 años, 6 meses
Puntos: 0
Hola Chikitika, que tal, aquí de pasadita, espero te pueda servir este Query

SELECT *
FROM catNoticias
where datepart(wk,fecha_noticia) =datepart(wk,getdate()) -- Comparar la semana al dia de la consulta
and datepart(dw,fecha_noticia) > 1 --- mayor a Domingo
and datepart(dw,fecha_noticia) < 7 --- menor a Sabado

Claro, puedes jugar con las variables si quieres restringir otros dias
Saludos
  #7 (permalink)  
Antiguo 07/11/2006, 02:53
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Ojo con esta ultima, esta bien pero solo si el domingo es el primer dia de la semana...

Donde yo estoy el primer dia es el lunes, entonces domingo = 7 y lunes = 1, eso se sabe con @@DATEFIRST, si vale 1 es lunes el 1er dia, si vale 7 es domingo el 1er dia
  #8 (permalink)  
Antiguo 07/11/2006, 03:36
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 21 años
Puntos: 5
Bueno veo que hay varias soluciones en este post a ver si la compañera logra solucionar el problema.

Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #9 (permalink)  
Antiguo 07/11/2006, 04:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 127
Antigüedad: 18 años, 1 mes
Puntos: 0
Creo que ya lo he solucionado con está línea. Esta es la posible solución:

sqlc ="select Idd,fecha,titulo from noticias
where datediff(dd,fecha, getdate())<=7"

Aunque no estoy segura de momento saca los de está semana, habrá que ver si la semana que viene saca solo los de esa semana.


Saludos
  #10 (permalink)  
Antiguo 07/11/2006, 04:55
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 21 años
Puntos: 5
¿Esperar una semana? Prueba cambiar la fecha del sistema del equipo donde está alojado las páginas y ya nos dirás :)

Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #11 (permalink)  
Antiguo 07/11/2006, 05:31
 
Fecha de Ingreso: octubre-2006
Mensajes: 127
Antigüedad: 18 años, 1 mes
Puntos: 0
Ya he cambiado la fecha, he puesto el martes que viene y nada me salen las de esta semana que con la fecha nueva es la semana anterior.

Buff esto lo voy dejar porque me estoy volviendo loca.
  #12 (permalink)  
Antiguo 07/11/2006, 18:27
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 21 años
Puntos: 5
A ver...

Código:
Select Convert(varchar(10),GetDate(),101)					-- Éste es hoy 
Select DatePart(dw,Convert(varchar(10),GetDate(),101))				-- Éste es el día de la semana (2 es Lunes)
Select Case DatePart(dw,Convert(varchar(10),GetDate(),101))
	When 2 Then Convert(varchar(10),GetDate(),101)		 	-- 2 es Lunes
	When 3 Then DateAdd(dd,-1,Convert(varchar(10),GetDate(),101))		-- 3 es Martes
	When 4 Then DateAdd(dd,-2,Convert(varchar(10),GetDate(),101))		-- 4 es Miercoles
	When 5 Then DateAdd(dd,-3,Convert(varchar(10),GetDate(),101))		-- 5 es Jueves
	When 6 Then DateAdd(dd,-4,Convert(varchar(10),GetDate(),101))		-- 6 es Viernes
	When 7 Then DateAdd(dd,-5,Convert(varchar(10),GetDate(),101))		-- 7 es Sábado
	When 1 Then DateAdd(dd,-6,Convert(varchar(10),GetDate(),101))		-- 1 es Domingo
	Else Null End
Saludos
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
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 22:15.