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

Oracleで月の最終日を取得する方法

    Oracle Databaseでは、LAST_DAY()を使用できます。 特定の月の最終日を返す関数。これは、当月の最終日または指定された日付に基づく月の最終日になります。

    SELECT LAST_DAY(date '2035-02-15')
    FROM DUAL;

    結果:

    28-FEB-35

    月の最終日は、セッションパラメータNLS_CALENDARによって定義されます。 。セッションで使用されているカレンダーを確認するには、「NLSパラメーターの値を確認する方法」を参照してください。鉱山はグレゴリオ暦を使用しています。

    日付を1年前倒しすると、次のようになります。

    SELECT LAST_DAY(date '2036-02-15')
    FROM DUAL;

    結果:

    29-FEB-36

    翌年はうるう年なので、その年の2月は29日です。

    LAST_DAY()に注意してください 関数はDATEを返します 価値。これは、TIMESTAMPを渡した場合でも当てはまります。 値:

    SELECT LAST_DAY(TIMESTAMP '2036-07-15 15:30:45.12345')
    FROM DUAL;

    結果:

    31-JUL-36

    今月

    この例では、当月の最終日を取得します:

    SELECT 
        SYSDATE,
        LAST_DAY(SYSDATE)
    FROM DUAL;

    結果:

    SYSDATE LAST_DAY(SYSDATE)
    12-APR-22 30-APR-22

    この場合、SYSDATEを使用しました 現在の日付。

    来月

    ADD_MONTHS()を使用できます 現在の日付に1か月以上を追加する関数:

    SELECT 
        SYSDATE,
        LAST_DAY(ADD_MONTHS(SYSDATE, 1))
    FROM DUAL;

    結果:

    SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE、1))
    12-APR-22 22年5月31日

    この場合、来月の最終日を取得しました。

    先月

    負の値を追加して、前月の最終日を取得できます:

    SELECT 
        SYSDATE,
        LAST_DAY(ADD_MONTHS(SYSDATE, -1))
    FROM DUAL;

    結果:

    SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE、-1))
    12-APR-22 31-MAR-22

    1. 名前付きパイプとは何ですか?

    2. 初心者向けのSQLORDERBY句

    3. 一言で言えば軽い

    4. Atand()がPostgreSQLでどのように機能するか