sql >> データベース >  >> RDS >> SQLite

SQLiteで月末を返す

    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

    1. ORA028513DG4ODBCエラーの調査

    2. ORA-00918:SELECTであいまいに定義された列*

    3. C#.netコードからSQLストアドプロシージャにnull変数を渡す方法

    4. OracleSQLDeveloperでパスワードを変更する