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 日足すことによって取得しています。
[実行結果]
日付に 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 関数を使って取得しています。
[実行結果]
日付に 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 関数を使うことによって取得しています。
[実行結果]
日付に 2024-03-16 を指定していて、翌月の月初の 2024-04-01 と月末の 2024-04-30 が取得できています。
以上、MySQL で当月・前月・翌月の月初・月末の日付を取得する方法をご説明しました。