Du kan få den första i månaden genom att beräkna den sista_dagen i månaden innan och lägga till en dag. Det är besvärligt, men jag tror att det är bättre än att formatera ett datum som en sträng och använda det för beräkning.
select
*
from
yourtable t
where
/* Greater or equal to the start of last month */
t.date >= DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY) and
/* Smaller or equal than one month ago */
t.date <= DATE_SUB(NOW(), INTERVAL 1 MONTH)