Sie waren nah dran - haben den Vergleich rückwärts gemacht (unter der Annahme von startDate
ist ein DATETIME- oder TIMESTAMP-Datentyp):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Warnhinweise:
- Denken Sie daran, dass Sie mysql_escape_string verwenden oder Sie riskieren SQL-Injection-Angriffe .
- Funktionsaufrufe auf Spalten bedeuten, dass ein Index, falls vorhanden, nicht verwendet werden kann
Alternativen:
Da die Verwendung von Funktionen für Spalten keine Indizes verwenden kann, wäre ein besserer Ansatz die Verwendung von BETWEEN
und das STR_TO_DATE
Funktionen:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Informationen zur Formatierungssyntax finden Sie in der Dokumentation.