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

Oracle SQL tạo ngày từ các bộ phận

Đây là một phương pháp sử dụng ADD_MONTHSEXTRACT(YEAR FROM ....) . Bạn chỉ cần cộng hoặc trừ số tháng cần thiết (luôn là bội số của 12, vì bạn chỉ thay đổi năm). Không giống như TO_CHAR / TO_DATE giải pháp, cách tiếp cận này xử lý các ngày nhuận (29 tháng 2). Mặt khác, hãy lưu ý rằng việc thay đổi ngày từ 28 tháng 2 năm 2003 sang năm 2012 sẽ đổi thành ngày 29 tháng 2 (ADD_MONTHS thay đổi ngày cuối cùng của tháng thành ngày cuối cùng của tháng kết quả).

with
     inputs as (
       select date '2013-03-22' as effective_date,
              date '2017-08-14' as point_date
       from   dual
     )
-- end of TEST data (do not include in the solution!)
select effective_date, point_date,
       add_months(point_date, 12 * ( extract (year from effective_date) - 
                                     extract (year from point_date)     )
                 ) as mixed_date
from   inputs;

EFFECTIVE_DATE  POINT_DATE  MIXED_DATE
--------------  ----------  ----------
03/22/2013      08/14/2017  08/14/2013


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn đệ quy Oracle - Ngày tháng

  2. VARCHAR (MAX) so với VARCHAR (n) trong Oracle

  3. SQL Challenge / Puzzle:Đưa ra một dấu vết ngăn xếp - Làm thế nào để tìm phần tử trên cùng tại mỗi thời điểm?

  4. Lỗi SQL:ORA-00942 bảng hoặc dạng xem không tồn tại

  5. Làm cách nào để sử dụng tham số IN OUT CLOB được xác định trong Proc được lưu trữ trong Oracle JDBC?