Parece que desea filas donde end_date
es más tarde que hace cinco días.
La mejor forma de conseguirlo es con
WHERE end_date >= CURDATE() - INTERVAL 5 DAY
El negocio de agregar números enteros a las fechas no funciona en MySQL (es una cosa de Oracle). Entonces necesitas usar la unidad INTERVAL n unit
sintaxis.
Notarás que mi cláusula WHERE anterior es funcionalmente equivalente a
WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())
Pero, la primera formulación es superior a la segunda por dos razones.
- si menciona
end_date
en una cláusula WHERE sin envolverla en cálculos, su consulta puede explotar un índice en esa columna y puede ejecutarse más rápido. DATE(NOW())
yCURDATE()
ambos se refieren al primer momento de hoy (medianoche). PeroCURDATE()
es un poco más simple.