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

Consulta por semana

Estas en el tema de Consulta por semana en el foro de Mysql en Foros del Web. Hola a todos, quiero sacar registros por semana y he encontrado la funcion WEEK, el problema es que considera la semana de domingo a sabado. ...
  #1 (permalink)  
Antiguo 19/04/2012, 07:33
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 19 años, 5 meses
Puntos: 4
Consulta por semana

Hola a todos,

quiero sacar registros por semana y he encontrado la funcion WEEK, el problema es que considera la semana de domingo a sabado. Por ejemplo si hago la consulta

Cita:
SELECT * FROM Datos WHERE WEEK( fecha ) = WEEK( '2012-04-12' )
Me saqca registros del 8 al 14, en vez del 9 al 15

Alguna idea de como solucionar esto??

Gracias

Saludos
__________________
La ficción es y será mi única realidad
  #2 (permalink)  
Antiguo 19/04/2012, 09:46
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años, 7 meses
Puntos: 131
Respuesta: Consulta por semana

Prueba con week('2012-04-12',0)
  #3 (permalink)  
Antiguo 23/04/2012, 02:22
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: Consulta por semana

Gracias por la respuesta pero mismo caso, sigue sacando del 8 al 14
__________________
La ficción es y será mi única realidad
  #4 (permalink)  
Antiguo 23/04/2012, 04:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta por semana

Cita:
el problema es que considera la semana de domingo a sabado.


Disculpa la risa, pero el problema es que tomar la semana de domingo a sábado es un estandar universal... Si te fijas, todos los almanaques, calendarios y etcéteras que se publican en cualquier medio lo hacen de esa forma.
Siempre se ha usado de ese modo...

Ahora bien, si lo que quieres es que tome como día inicial cualquier otro, eso debes manejarlo segmentando la fecha, o creando un SP que analice esa condición. porque ya no pertenece al estándar y difícilmente lo logres en una sola consulta.

PD: No te olvides que no puedes modificar las variables del servidor por que sí, porque eso alteraría todos los cálculos de todas las consultas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 26/04/2012, 02:17
 
Fecha de Ingreso: junio-2005
Ubicación: Barcelona
Mensajes: 458
Antigüedad: 19 años, 5 meses
Puntos: 4
Respuesta: Consulta por semana

Ya se que es el estandard universal pero por ejemplo en españa pues es de lunes a domingo por lo que queria que las consultas me dieran de lunes a domingo

Seguire probando a ver.....
__________________
La ficción es y será mi única realidad
  #6 (permalink)  
Antiguo 26/04/2012, 10:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta por semana

Como te dije, lo más sencillo es que generes un stored procedure que pueda resolverte el problema.
En una consulta difícilmente funcionará porque no hay funciones nativas para controlar eso.
Lo que podrías hacer es usar una combinación entre DAYOFWEEK() y WEEK(), para obtenerlo, pero como te digo, no será sencillo.
Podemos hacer el intento...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/04/2012, 13:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Consulta por semana

jspcat,
¿si haces esto, qué ocurre?
SELECT * FROM Datos WHERE YEARWEEK( fecha,1 ) = YEARWEEK( '2012-04-12',1 )

Etiquetas: registros, select, 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.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:08.