・基本
●先月の末日
DATE( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW()) DAY) )
現在 – 今月の今までの日数 = 先月末日の現時刻 で、DATEで日付に丸める。
●今月の初日
DATE( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW())-1 DAY) )
現在 – (今月の今までの日数-1) = 今月初日の現時刻 で、DATEで日付に丸める。
●今月の末日
LAST_DAY(NOW())
●Nヶ月前の初日
DATE( DATE_SUB( DATE_SUB(NOW(), INTERVAL DAYOFMONTH(NOW()) -1 DAY), INTERVAL N MONTH))
●Nヶ月前の末日
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))
(1070)