Je was dichtbij - kreeg de vergelijking achterstevoren (ervan uitgaande dat startDate
is een DATETIME of TIMESTAMP datatype):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Voorbehoud:
- Let erop dat je mysql_escape_string gebruikt of je riskeert SQL-injectie-aanvallen .
- Functie-aanroepen op kolommen betekent dat een index, indien aanwezig, niet kan worden gebruikt
Alternatieven:
Omdat het gebruik van functies op kolommen geen indexen kan gebruiken, zou een betere benadering zijn om BETWEEN
te gebruiken en de STR_TO_DATE
functies:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Zie de documentatie voor de opmaaksyntaxis.