Бяхте близо - направихте сравнението назад (приемайки startDate
е тип данни DATETIME или TIMESTAMP):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Предупреждения:
- Имайте предвид, че използвате mysql_escape_string или рискувате атаки с инжектиране на SQL .
- Извикванията на функции за колони означават, че индекс, ако съществува, не може да се използва
Алтернативи:
Тъй като използването на функции в колони не може да използва индекси, по-добър подход би бил да се използва BETWEEN
и STR_TO_DATE
функции:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Вижте документацията за форматиране на синтаксиса.