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

Как да итерирате през период от време в PL/SQL

Едно решение, което използвам за това, е да конвертирам диапазона от време в целочислен диапазон, който можете да използвате в цикъл for, след което да конвертирате обратно към дата, за да правите неща с него. Не можете да правите никакви присъединявания или нещо по този начин, но това е много по-малко решение от тези, които вече са публикували:

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. PL/SQL програма за изтриване на записите от таблицата

  2. Инсталиране на пакети RODBC/ROracle на OS X Mavericks

  3. Пример за изпълнение на задание DBMS_SCHEDULER на всеки час

  4. Използване на псевдоним в клауза WHERE

  5. Проблем при сравняване на резултат от to_char(myDate, 'DAY') с низ