月初と月末の日付を取得する方法です。

# 月初
select DATE_FORMAT(CURDATE(), '%Y-%m-01');

# 月末
select LAST_DAY(CURDATE());

月末は、LAST_DAY()で日時を取得できます。

月初は、そういった関数がないので直接日時の01を指定する感じですね。

実際は、CURDATE()の部分にカラムを指定して使うパターンが多いかと思います。

 

ついでなので前月月初と前月月末も書いてみます。

# 前月月初
SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01');

# 前月月末
SELECT LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH));

DATE_SUB()で一月マイナスして、その月の月初と月末を取得しています。

最後までお付き合い頂きありがとうございました!