Estabas cerca:obtuviste la comparación al revés (suponiendo que startDate
es un tipo de datos DATETIME o TIMESTAMP):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Advertencias:
- Tenga en cuenta que está utilizando mysql_escape_string o te arriesgas a ataques de inyección SQL .
- Las llamadas de función en columnas significan que un índice, si existe, no se puede usar
Alternativas:
Debido a que usar funciones en columnas no puede usar índices, un mejor enfoque sería usar BETWEEN
y el STR_TO_DATE
funciones:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Consulte la documentación para formatear la sintaxis.