Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để có được ngày cuối cùng của tháng trong Oracle

Trong Cơ sở dữ liệu Oracle, chúng ta có thể sử dụng LAST_DAY() hàm để trả về ngày cuối cùng của một tháng nhất định. Đây có thể là ngày cuối cùng của tháng hiện tại hoặc ngày cuối cùng của tháng dựa trên một ngày cụ thể.

Ví dụ

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

Kết quả:

28-FEB-35

Ngày cuối cùng của tháng được xác định bởi tham số phiên NLS_CALENDAR . Xem Cách Kiểm tra Giá trị của Tham số NLS để tìm hiểu phiên của bạn đang sử dụng lịch nào. Của tôi đang sử dụng lịch Gregorian.

Dưới đây là những gì sẽ xảy ra khi chúng ta dời ngày về sau một năm:

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

Kết quả:

29-FEB-36

Năm sau là một năm nhuận, và do đó, chúng ta có 29 ngày trong tháng Hai năm đó.

Lưu ý rằng LAST_DAY() hàm trả về một DATE giá trị. Điều này đúng ngay cả khi chúng ta vượt qua TIMESTAMP giá trị:

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

Kết quả:

31-JUL-36

Tháng hiện tại

Ví dụ này lấy ngày cuối cùng của tháng hiện tại:

SELECT 
    SYSDATE,
    LAST_DAY(SYSDATE)
FROM DUAL;

Kết quả:

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

Trong trường hợp này, tôi đã sử dụng SYSDATE cho ngày hiện tại.

Tháng tới

Chúng tôi có thể sử dụng ADD_MONTHS() chức năng thêm một hoặc nhiều tháng vào ngày hiện tại:

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

Kết quả:

SYSDATE LAST_DAY (ADD_MONTHS (SYSDATE, 1))
12-APR-22 31-MAY-22

Trong trường hợp này, chúng ta có ngày cuối cùng của tháng tới.

Tháng trước

Chúng tôi có thể thêm một giá trị âm để lấy ngày cuối cùng của tháng trước:

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

Kết quả:

SYSDATE LAST_DAY (ADD_MONTHS (SYSDATE, -1))
12-APR-22 31-Tháng Ba-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. Hàm COSH () trong Oracle

  2. OracleDataSource so với Oracle UCP PoolDataSource

  3. Xử lý lỗi Oracle

  4. Tham số Oracle với câu lệnh IN?

  5. Bool hỗ trợ Oracle SQL