Det ser ud til, at du vil have rækker med end_date er senere end fem dage siden.
Den bedste måde at få det på er med
WHERE end_date >= CURDATE() - INTERVAL 5 DAY
Forretningen med at tilføje heltal til datoer fungerer ikke i MySQL (det er en Oracle-ting). Så du skal bruge INTERVAL n unit syntaks.
Du vil bemærke, at min WHERE-klausul ovenfor funktionelt svarer til
WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())
Men den første formulering er bedre end den anden af to grunde.
- hvis du nævner
end_datei en WHERE-sætning uden at pakke den ind i beregninger, kan din forespørgsel udnytte et indeks på den kolonne og kan køre hurtigere. DATE(NOW())ogCURDATE()begge henviser til dagens første øjeblik (midnat). MenCURDATE()er lidt enklere.