Byłeś blisko — uzyskano porównanie wstecz (zakładając, że startDate
to typ danych DATETIME lub TIMESTAMP):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Ostrzeżenia:
- Pamiętaj, że używasz mysql_escape_string lub ryzykujesz ataki typu SQL injection .
- Wywołania funkcji w kolumnach oznaczają, że indeks, jeśli taki istnieje, nie może być używany
Alternatywne:
Ponieważ używanie funkcji na kolumnach nie może używać indeksów, lepszym podejściem byłoby użycie BETWEEN
i STR_TO_DATE
funkcje:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Zobacz dokumentację dotyczącą formatowania składni.