Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да получите последния ден от месеца в Oracle

В Oracle Database можем да използваме LAST_DAY() функция за връщане на последния ден от даден месец. Това може да бъде последният ден от текущия месец или последният ден от месеца въз основа на посочена дата.

Пример

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

Резултат:

28-FEB-35

Последният ден от месеца се дефинира от параметъра на сесията NLS_CALENDAR . Вижте как да проверите стойностите на параметрите на NLS, за да разберете кой календар използва вашата сесия. Моят използва григорианския календар.

Ето какво се случва, когато преместим датата с една година напред:

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

Резултат:

29-FEB-36

Следващата година е високосна и така получаваме 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 април 22 30-APR-22

В този случай използвах SYSDATE за текущата дата.

Следващия месец

Можем да използваме ADD_MONTHS() функция за добавяне на един или повече месеца към текущата дата:

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

Резултат:

SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE,1))
12 април 22 31-22 МАЙ

В този случай имаме последния ден на следващия месец.

Последният месец

Можем да добавим отрицателна стойност, за да получим последния ден от предходния месец:

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

Резултат:

SYSDATE LAST_DAY(ADD_MONTHS(SYSDATE,-1))
12 април 22 31-Мар-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. Топ 5 отнемащи време SQL заявки в Oracle

  2. Проблем с периодично свързване на Oracle JDBC

  3. Използване на Oracle JDeveloper 12c с Oracle Database, част 2

  4. Стъпки за промяна на администраторска парола, която е загубена или забравена от EBS WebLogic домейн R12.2

  5. Защо е поискано невалидно преобразуване КОД НА ГРЕШКА:17132?