Seleccionar eventos del próximo fin de semana
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?
Aceptado
Puedes calcular el próximo sábado y domingo usando weekday
funciones 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 where
la 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
...
WHERE CURRENT_DATE + INTERVAL (5 - WEEKDAY(CURRENT_DATE)) DAY <= enddate
AND CURRENT_DATE + INTERVAL (6 - WEEKDAY(CURRENT_DATE)) DAY >= startdate