sql >> Database >  >> RDS >> Oracle

Hoe genereer ik alle datums van zondag tussen 2 datums in Oracle SQL?

Hier is hoe; de CTE (dates ) maakt een "kalender" aan van alle datums vanaf 2018-10-01 , voor aantal dagen tussen 2018-10-01 en 2018-12-31 . Dit beantwoordt uw 2e vraag.

Gebruik voor de eerste vraag TO_CHAR functie met het juiste formaatmasker (dy ) en datumtaal (omdat, als ik het niet zou gebruiken, je Kroatische namen zou krijgen, want dat is mijn standaardtaal), selecteer alle zondagen.

SQL> with dates as
  2    (select date '2018-10-01' + level - 1 datum
  3     from dual
  4     connect by level <= date '2018-12-31' - date '2018-10-01' + 1
  5    )
  6  select datum
  7  From dates
  8  where to_char(datum, 'dy', 'nls_date_language = english') = 'sun';

DATUM
-----------
07-oct-2018
14-oct-2018
21-oct-2018
28-oct-2018
04-nov-2018
11-nov-2018
18-nov-2018
25-nov-2018
02-dec-2018
09-dec-2018
16-dec-2018
23-dec-2018
30-dec-2018

13 rows selected.

SQL>


  1. PreparedStatement en setTimestamp in oracle jdbc

  2. Enkele MySQL-instructie om twee tabellen samen te voegen

  3. Schakel PostgreSQL-controles van externe sleutels uit voor migraties

  4. Een ORDER BY optimaliseren voor een berekende kolom op een MASSIVE MySQL-tabel?