sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo obtengo el mes a partir de la fecha en mysql?

Estabas cerca:obtuviste la comparación al revés (suponiendo que startDate es un tipo de datos DATETIME o TIMESTAMP):

SELECT * 
  FROM table 
 WHERE amount > 1000 
   AND MONTH(dateStart) = {$m}

Advertencias:

Alternativas:

Debido a que usar funciones en columnas no puede usar índices, un mejor enfoque sería usar BETWEEN y el STR_TO_DATE funciones:

WHERE startdate BETWEEN STR_TO_DATE([start_date], [format]) 
                    AND STR_TO_DATE([end_date], [format])

Consulte la documentación para formatear la sintaxis.

Referencia: