Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak uzyskać ostatni dzień miesiąca w Oracle?

W Oracle Database możemy użyć LAST_DAY() funkcja zwracająca ostatni dzień danego miesiąca. Może to być ostatni dzień bieżącego miesiąca lub ostatni dzień miesiąca na podstawie określonej daty.

Przykład

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

Wynik:

28-FEB-35

Ostatni dzień miesiąca jest określony przez parametr sesji NLS_CALENDAR . Zobacz Jak sprawdzić wartości parametrów NLS, aby dowiedzieć się, z którego kalendarza korzysta Twoja sesja. Mój używa kalendarza gregoriańskiego.

Oto, co się dzieje, gdy przesuniemy datę o rok do przodu:

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

Wynik:

29-FEB-36

Następny rok jest rokiem przestępnym, więc w lutym tego roku mamy 29 dni.

Zauważ, że LAST_DAY() funkcja zwraca DATE wartość. Dzieje się tak, nawet jeśli przekażemy TIMESTAMP wartość:

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

Wynik:

31-JUL-36

Bieżący miesiąc

Ten przykład pokazuje ostatni dzień bieżącego miesiąca:

SELECT 
    SYSDATE,
    LAST_DAY(SYSDATE)
FROM DUAL;

Wynik:

SYSDATE LAST_DAY(SYSDATE)
12-kwiecień-22 30-22 kwietnia

W tym przypadku użyłem SYSDATE dla bieżącej daty.

Następny miesiąc

Możemy użyć ADD_MONTHS() funkcja, aby dodać jeden lub więcej miesięcy do bieżącej daty:

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

Wynik:

SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE;1))
12-kwiecień-22 31-22-MAJA

W tym przypadku mamy ostatni dzień przyszłego miesiąca.

Ostatni miesiąc

Możemy dodać wartość ujemną, aby uzyskać ostatni dzień poprzedniego miesiąca:

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

Wynik:

SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE,-1))
12-kwiecień-22 31 marca-22

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Funkcja JSON_VALUE() w Oracle

  2. Uzyskaj najlepsze wyniki dla każdej grupy (w Oracle)

  3. Jak skutecznie przekonwertować tekst na liczbę w Oracle PL/SQL przy użyciu innych niż domyślna wartości NLS_NUMERIC_CHARACTERS?

  4. Przykład demonstrujący podatność na wstrzykiwanie SQL i zapobieganie jej w Oracle

  5. Czy SQLDeveloper obsługuje wykonywanie skryptów?