DATE( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW()) DAY) )
現在 – 今月の今までの日数 = 先月末日の現時刻 で、DATEで日付に丸める。
DATE( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW())-1 DAY) )
現在 – (今月の今までの日数-1) = 今月初日の現時刻 で、DATEで日付に丸める。
LAST_DAY(NOW())
DATE( DATE_SUB( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW()) -1 DAY), INTERVAL N MONTH))
LAST_DAY( DATE( DATE_SUB( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW()) -1 DAY), INTERVAL N MONTH)))
月次集計バッチで前月の期間を指定する場合・・・
SELECT * FROM logs WHERE logs.created >= DATE(DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW()) DAY)) AND logs.created < DATE(DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW())-1 DAY))