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

Cách lặp qua phạm vi ngày trong PL / SQL

Một giải pháp mà tôi sử dụng cho việc này là chuyển đổi phạm vi ngày thành một phạm vi số nguyên mà bạn có thể sử dụng trong vòng lặp for, sau đó chuyển đổi trở lại ngày để thực hiện công việc với nó. Bạn không thể thực hiện bất kỳ liên kết hoặc bất kỳ điều gì theo cách này, nhưng đó là một giải pháp nhỏ hơn nhiều mà những người đã đăng:

declare
  start_date number;
  end_date number;
  business_date varchar2(8);
begin
  start_date := to_number(to_char(to_date('2013-04-25', 'yyyy-MM-dd'), 'j'));
  end_date := to_number(to_char(to_date('2013-05-31', 'yyyy-MM-dd'), 'j'));
  for cur_r in start_date..end_date loop
    business_date := to_char(to_date(cur_r, 'j'), 'yyyy-MM-dd');
    dbms_output.put_line(business_date);
  end loop;
end;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số Oracle thành số thập phân C #

  2. Lỗi khi cập nhật Tham gia

  3. Cách trả lại số giây phân số từ giá trị ngày giờ trong Oracle

  4. Oracle UTL_FILE đọc các dòng tệp CSV

  5. 2 cách trả về hàng không chứa giá trị số trong Oracle