Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: cpichi.cu en 7 Julio 2011, 17:16 pm



Título: Cómo obtener la semana actual a partir del día actual
Publicado por: cpichi.cu en 7 Julio 2011, 17:16 pm
Quizás el nombre del post no sea muy preciso, así que lo mejor será que me expliqué mejor.

Lo que necesito es lo siguiente: tengo una BD en MySql y necesito hacer unas búsquedas por fechas, para lo cual tengo un combo donde tengo estas opciones:

Today
Yesterday
This Week
This Month
Last 7 days
Last 30 days
Last calendar month
Date Range

Para Today y Yesterday y los 7 y 30 días antes tengo la solución, utilizo:

TO_DAYS(NOW()) - TO_DAYS(o.date) = 0
TO_DAYS(NOW()) - TO_DAYS(o.date) = 1
TO_DAYS(NOW()) - TO_DAYS(o.date) <= 7
TO_DAYS(NOW()) - TO_DAYS(o.date) <= 30

respectivamente...
Pero mi problema comienza con los días de la semana actual, que no sé cómo lograr que a partir de la fehca actual NOW() pueda obtener los 7 días de la semana correspondiente...

Lo tengo medio logrado con una combinación bastante complicada de MySql, pero necesitaría PHP, quiero saber si existe alguna función en MySql implementada para tal efecto, o si lo tengo que combinar obligatoriamente. Me serviría también algo de ayuda para Las Calendar Month, el rango de fecha lo tengo hecho también, sería algo cómo esto:

RegDate >= '2008-10-10' AND RegDate <= '2008-12-11'

Gracias por la ayuda.


Título: Re: Cómo obtener la semana actual a partir del día actual
Publicado por: cpichi.cu en 7 Julio 2011, 17:27 pm
Bueno, gracias por leer, ya he resuelto el problema, SAN Google, me ayudó,  :-\

Aquí dejo la solución por si acaso alguien se topa con el problemilla.

SELECT
 *
 FROM orders  as o
 WHERE YEARweek(o.date) = YEARweek(CURRENT_date)

Ese SELECT devuelve todas las "orders" que estén con fecha de la semana corriente.

Y este otro es para la semana anterior

SELECT
*
 FROM orders as o
 WHERE YEARweek(o.date) = YEARweek(CURRENT_date - INTERVAL 7 DAY)

******Y para el LAST MONTH****

SELECT 
*
 FROM orders as o
 WHERE
 SUBSTRING(o.date FROM 1 FOR 7) =  SUBSTRING(CURRENT_date - INTERVAL 1 MONTH FROM 1 FOR 7)


Saludos, espero haber ayudado a alguien.


Título: Re: Cómo obtener la semana actual a partir del día actual
Publicado por: Nakp en 8 Julio 2011, 08:08 am
jajaja lo conseguiste en menos de 9 minutos :xD me alegra que publicaras la solución a tu problema :) muchos se olvidan de que preguntaron y no ayudan a los demás cuando tienen la misma dificultad, todo por guardarse la solución... gracias ;)


Título: Re: Cómo obtener la semana actual a partir del día actual
Publicado por: cpichi.cu en 8 Julio 2011, 14:04 pm
Siempre que puedo ayudo, como mismo tuve la duda yo, la puede tener otro, no importa que sea algo simple, siempre habrá alguien queriendo apreder y necesitará que lo guíen, a veces he encontrado soluciones en post de más de 4 años de antigüedad.

Aquí dejo la solocuión para cómo sería seleccionar las "orders" del mes en curso.

SELECT
 *
 FROM orders  as o
 WHERE MONTH(o.date) = MONTH(CURRENT_DATE)


Título: Re: Cómo obtener la semana actual a partir del día actual
Publicado por: cchianalino en 25 Septiembre 2018, 17:25 pm
Hola se que hace mucho que este hilo no tiene actividad pero... siempre alguien ayuda
si necesitara realizar una consulta en un rango que va de jueves a jueves a partir de una fecha.
tengo campo fecha y necesito haces
WHERE fecha BETWEEN (jueves pasado) AND (jueves proximo)
desde ya gracias !!!!