SQLiteでは、次の方法を使用して、特定の月の最終日を計算できます。
これは、現在の日付または他の特定の日付に基づくことができます。
今月の最終日
今月の最終日を返す例を次に示します。
SELECT DATE('now', 'start of month', '+1 month', '-1 day');
結果:
2022-03-31
これはDATE()
を使用します 必要な結果を返す関数。 'now'
引数は現在の日付を返し、'start of month'
引数はそれを月の初めに変更します。次に、'+1 month'
を使用します 月の初めに月を追加する(次の月の初めに前にシフトする)場合は、その日付を1日減らします(最初の月の終わりに戻すため)。
指定された月の最終日
ただし、前述のとおり、今月末だけではありません。任意の日付を指定でき、その日付に基づいて月末が返されます。
次にいくつかの例を示します。
SELECT
DATE('2023-02-10', 'start of month', '+1 month', '-1 day') AS Feb,
DATE('2023-11-10', 'start of month', '+1 month', '-1 day') AS Nov,
DATE('2023-12-10', 'start of month', '+1 month', '-1 day') AS Dec;
結果:
Feb Nov Dec ---------- ---------- ---------- 2023-02-28 2023-11-30 2023-12-31
SQLiteは、毎月何日あるかを計算するのに十分賢いことがわかります。 '+1 month'
を使用する場合 、SQLiteは毎月何日かを知っています。 2月は28日、11月30日、12月は31日であることがわかります。
元の日付を2024年に進めると、2月はその年に29日あることがわかります。
SELECT
DATE('2024-02-10', 'start of month', '+1 month', '-1 day') AS Feb,
DATE('2024-11-10', 'start of month', '+1 month', '-1 day') AS Nov,
DATE('2024-12-10', 'start of month', '+1 month', '-1 day') AS Dec;
結果:
Feb Nov Dec ---------- ---------- ---------- 2024-02-29 2024-11-30 2024-12-31