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

Recuperar registros de la semana actual y la pasada

Estas en el tema de Recuperar registros de la semana actual y la pasada en el foro de Bases de Datos General en Foros del Web. Hola! Trabajo con MySql. Tengo una tabla en la que hay un campo tipo fecha, que representa la fecha en que se guarda el registro. ...
  #1 (permalink)  
Antiguo 08/02/2011, 09:25
 
Fecha de Ingreso: noviembre-2010
Mensajes: 65
Antigüedad: 14 años
Puntos: 0
Recuperar registros de la semana actual y la pasada

Hola! Trabajo con MySql. Tengo una tabla en la que hay un campo tipo fecha, que representa la fecha en que se guarda el registro. Me gustaría recuperar los registros guardados durante la semana actual, y los registros guardados durante la semana pasada. Yo hacía:

1) where fecha >= date_add(curdate(), interval -7 day) and fecha <= curdate()
y
2) where fecha >= date_add(curdate(), interval -14 day ) and fecha <= date_add(curdate(), interval -7 day )

Pero claro esto me da: 1) Lo guardados durante los 7 últimos días y 2) Los guardados entre 14 y 7 días anteriores respecto la fecha actual. Y yo quiero:
1) Los de la semana actual
2) Los de la semana pasada.

¿Cómo podría hacerlo?

Muchas gracias
  #2 (permalink)  
Antiguo 08/02/2011, 09:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Recuperar registros de la semana actual y la pasada

Aqui esta una funcion que saca mas o menos lo que necesitas, solo que esta para SQL Server seria que la migraras a MYSQL, se basa en obtener el siguiente 'domingo' tomando en cuenta que las semanas inician en domingo :)

Código SQL:
Ver original
  1. DECLARE @dia VARCHAR(200)
  2. DECLARE @fechainicial datetime
  3. DECLARE @fechafinal datetime
  4. DECLARE @x INT
  5. DECLARE @y INT
  6.  
  7. SET @x=0
  8. SET @y=7
  9. while @x<=@y
  10. BEGIN
  11.     SELECT @dia=datename(dw, getdate()+@x)
  12.     IF @dia='sunday'
  13.       BEGIN
  14.         SET @fechafinal=getdate()+@x
  15.         SET @fechainicial=@fechafinal-14
  16.         SET @x=@y                        
  17.       END
  18.      ELSE
  19.       SET @x=@x+1
  20. END
  21. print @fechainicial
  22. print @fechafinal

Saludos!
  #3 (permalink)  
Antiguo 08/02/2011, 12:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Recuperar registros de la semana actual y la pasada

No lo he probado:
1) Para la semana actual.
SELECT campofecha, campo1, campo2 FROM tutabla WHERE YEARWEEK(campofecha) = YEARWEEK(CURDATE());

2) si quieres de la semana anterior
SELECT campofecha, campo1, campo2 FROM tutabla WHERE YEAR(campofecha) = YEAR(CURDATE()) AND WEEKOFYEAR(campofecha) = (WEEKOFYEAR(CURDATE)-1)

No te pongo nada del start de YEARWEEK y WEEKOFYEAR. Mira en la función WEEK de MySQL.
  #4 (permalink)  
Antiguo 08/02/2011, 17:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 65
Antigüedad: 14 años
Puntos: 0
Respuesta: Recuperar registros de la semana actual y la pasada

No lo has probado dices??? Pues va perfectamente, impresionante!!! gracias a los dos!!! Pero vamos, la consulta que propone Jurena es sencillamente genial!!!!!

Etiquetas: recuperar, registros, semana
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 14:31.