Du var nära - fick jämförelsen baklänges (förutsatt startDate
är en datatyp DATETIME eller TIMESTAMP):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Varningar:
- Tänk på att du använder mysql_escape_string eller så riskerar du SQL-injektionsattacker .
- Funktionsanrop på kolumner innebär att ett index, om ett sådant finns, inte kan användas
Alternativ:
Eftersom att använda funktioner på kolumner inte kan använda index, skulle ett bättre tillvägagångssätt vara att använda BETWEEN
och STR_TO_DATE
funktioner:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Se dokumentationen för formateringssyntax.