sql >> Databasteknik >  >> RDS >> Oracle

Hur man itererar över ett datumintervall i PL/SQL

En lösning som jag använder för detta är att konvertera datumintervallet till ett heltalsintervall som du kan använda i en for-loop och sedan konvertera tillbaka till ett datum för att göra saker med det. Du kan inte göra några joins eller något på det här sättet, men det är en mycket mindre lösning än de som redan har lagt upp:

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. SQL Server-utlösare:DML-utlösare

  2. ORACLE - Välj Count on a Subquery

  3. Bryter MySQL mot standarden genom att tillåta att välja kolumner som inte är en del av gruppen för klausul?

  4. Felsöka disk I/O-flaskhalsar