Sembra che tu voglia righe in cui end_date è più tardi di cinque giorni fa.
Il modo migliore per ottenerlo è con
WHERE end_date >= CURDATE() - INTERVAL 5 DAY
L'attività di aggiungere numeri interi alle date non funziona in MySQL (è una cosa Oracle). Quindi devi usare l' INTERVAL n unit sintassi.
Noterai che la mia clausola WHERE sopra è funzionalmente equivalente a
WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())
Ma la prima formulazione è superiore alla seconda per due motivi.
- se menzioni
end_datein una clausola WHERE senza avvolgerla nei calcoli, la tua query può sfruttare un indice su quella colonna e può essere eseguita più velocemente. DATE(NOW())eCURDATE()entrambi si riferiscono al primo momento di oggi (mezzanotte). MaCURDATE()è un po' più semplice.