Você estava perto - obteve a comparação para trás (assumindo
startDate
é um tipo de dados DATETIME ou TIMESTAMP):SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Advertências:
- Lembre-se de que você está usando mysql_escape_string ou você corre o risco de ataques de injeção de SQL .
- Chamadas de função em colunas significa que um índice, se existir, não pode ser usado
Alternativas:
Como o uso de funções em colunas não pode usar índices, uma abordagem melhor seria usar
BETWEEN
e o STR_TO_DATE
funções:WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Consulte a documentação para a sintaxe de formatação.