using MONTH like that will return all april rows, regardless of the year
you’d have to use both YEAR and MONTH to get it right
there’s a better, way, however, and this way will also scale, i.e. if there’s an index on the date column, the following method will be efficient too –
WHERE starts >= CURRENT_DATE - INTERVAL DAYOFMONTH(CURRENT_DATE) - 1 DAY
AND starts < CURRENT_DATE - INTERVAL DAYOFMONTH(CURRENT_DATE) - 1 DAY
+ INTERVAL 1 MONTH