Byli jste blízko – došlo ke srovnání zpětně (za předpokladu startDate
je datový typ DATETIME nebo TIMESTAMP):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Upozornění:
- Nezapomeňte, že používáte mysql_escape_string nebo riskujete útoky SQL injection .
- Volání funkcí u sloupců znamená, že index, pokud existuje, nelze použít
Alternativy:
Protože pomocí funkcí ve sloupcích nelze používat indexy, lepším přístupem by bylo použití BETWEEN
a STR_TO_DATE
funkce:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Prohlédněte si dokumentaci pro formátování syntaxe.