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

Jak iterować w zakresie dat w PL/SQL

Jednym z rozwiązań, którego używam w tym celu, jest przekonwertowanie zakresu dat na zakres liczb całkowitych, którego można użyć w pętli for, a następnie przekonwertowanie z powrotem na datę, aby coś z tym zrobić. Nie możesz robić żadnych łączeń ani nic w ten sposób, ale jest to znacznie mniejsze rozwiązanie niż te, które już opublikowali:

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. Jaki jest efekt umieszczenia zatwierdzenia po DML w procedurze?

  2. Jak w moim przypadku mogę napisać SQL w Oracle?

  3. Oracle PL/SQL:Przykład DBMS_SCHEDULER.CREATE_JOB

  4. PLSQL JDBC:Jak uzyskać identyfikator ostatniego wiersza?

  5. TNS-12519 bez osiągnięcia maksymalnej liczby procesów