Eri vicino - il confronto è tornato indietro (supponendo startDate
è un tipo di dati DATETIME o TIMESTAMP):
SELECT *
FROM table
WHERE amount > 1000
AND MONTH(dateStart) = {$m}
Avvertenze:
- Ricorda che stai usando mysql_escape_string oppure rischi attacchi SQL injection .
- Le chiamate di funzione su colonne significano che un indice, se esistente, non può essere utilizzato
Alternative:
Poiché l'utilizzo delle funzioni sulle colonne non può utilizzare gli indici, un approccio migliore sarebbe utilizzare BETWEEN
e il STR_TO_DATE
funzioni:
WHERE startdate BETWEEN STR_TO_DATE([start_date], [format])
AND STR_TO_DATE([end_date], [format])
Consulta la documentazione per la sintassi di formattazione.