Seleccionar eventos del próximo fin de semana

Resuelto Nijn asked hace 8 meses • 2 respuestas

Mi mesa tiene eventos con fechas de inicio y finalización. Necesito seleccionar solo los eventos para el próximo fin de semana.

Para los eventos de la próxima semana puedo usarlo ya que es la misma selección que la de hoy.

SELECT * FROM table WHERE startdate <= CURDATE() AND enddate >= CURDATE()

¿Cómo puedo seleccionar solo los eventos para el próximo fin de semana?

Nijn avatar Feb 16 '24 17:02 Nijn
Aceptado

Puedes calcular el próximo sábado y domingo usando weekdayfunciones y algo de matemática:

Mon (weekday = 0) => add 5 days to get next Sat
Tue (weekday = 1) => add 4 days to get next Sat
.
.
.
Sun (weekday = 6) => add -1 days to get previous Sat

Y wherela cláusula se verá así ( ref ):

WHERE current_date + interval (5 - weekday(current_date)) day <= enddate
and   current_date + interval (6 - weekday(current_date)) day >= startdate
Salman A avatar Feb 16 '2024 10:02 Salman A
...
WHERE CURRENT_DATE + INTERVAL (5 - WEEKDAY(CURRENT_DATE)) DAY <= enddate
  AND CURRENT_DATE + INTERVAL (6 - WEEKDAY(CURRENT_DATE)) DAY >= startdate
Akina avatar Feb 16 '2024 10:02 Akina