MySQL で当月・前月・翌月の月初・月末の日付を取得する方法

ここでは、MySQL で指定した日の、その月・その前の月・その次の月の、月初・月末の日付を取得する方法をご説明します。

MySQL で指定した日の当月の月初・月末を取得する

MySQL で月初・月末を取得する変換するには LAST_DAY 関数が使えます。

LAST_DAY 関数は日付型の引数を受け取って、その日付の月の月末の日付を返す関数です。

LAST_DAY(date)

引数が日付ではない値の時はエラーではなく、null を返します。


LAST_DAY 関数を使って、指定した日の月の月初・月末を取得するには、次のようにできます。

SET @date = '2024-03-16';

SELECT 	LAST_DAY(@date - INTERVAL 1 MONTH) + INTERVAL 1 DAY AS first_day,
		LAST_DAY(@date) AS last_day;

その月の月末は、単純に LAST_DAY 関数に日付を渡すことで取得できます。

その月の月初は、指定した日付を - INTERVAL 1 MONTH で一ヶ月減らしてから、LAST_DAY 関数を使って前月の月末の日を取得した後に、+ INTERVAL 1 DAY で 1 日足すことによって取得しています。


[実行結果]

MySQL で当月・前月・翌月の月初・月末の日付を取得する方法 1

日付に 2024-03-16 を指定していて、その月の月初の 2024-03-01 と月末の 2024-03-31 が取得できています。


MySQL で指定した日の前月の月初・月末を取得する

MySQL で指定した日の前月の月初・月末を取得するには、次のようにできます。

SET @date = '2024-03-16';

SELECT 	LAST_DAY(@date - INTERVAL 2 MONTH) + INTERVAL 1 DAY AS first_day_of_last_month,
        LAST_DAY(@date - INTERVAL 1 MONTH) AS last_day_of_last_month;

前月の月初は、指定した日付を - INTERVAL 2 MONTH で二ヶ月減らしてから、LAST_DAY 関数を使って前々月の月末の日を取得した後に、+ INTERVAL 1 DAY で 1 日足すことによって取得しています。

その月の月末は、指定した日付を - INTERVAL 1 MONTH で一ヶ月減らしてから、LAST_DAY 関数を使って取得しています。


[実行結果]

MySQL で当月・前月・翌月の月初・月末の日付を取得する方法 2

日付に 2024-03-16 を指定していて、前月の月初の 2024-02-01 と月末の 2024-02-29 が取得できています。


MySQL で指定した日の翌月の月初・月末を取得する

MySQL で指定した日の翌月の月初・月末を取得するには、次のようにできます。

SET @date = '2024-03-16';

SELECT 	LAST_DAY(@date) + INTERVAL 1 DAY AS first_day_of_next_month,
        LAST_DAY(@date + INTERVAL 1 MONTH) AS last_day_of_next_month;

翌月の月初は、LAST_DAY 関数を使ってその月の月末の日を取得した後に、+ INTERVAL 1 DAY で 1 日足すことによって取得しています。

翌月の月末は、指定した日付に + INTERVAL 1 MONTH で一ヶ月増やしてから、LAST_DAY 関数を使うことによって取得しています。


[実行結果]

MySQL で当月・前月・翌月の月初・月末の日付を取得する方法 3

日付に 2024-03-16 を指定していて、翌月の月初の 2024-04-01 と月末の 2024-04-30 が取得できています。


以上、MySQL で当月・前月・翌月の月初・月末の日付を取得する方法をご説明しました。

© 2024 MySQL 入門