sql >> Databáze >  >> RDS >> Oracle

Jak vygeneruji všechna data neděle mezi 2 daty v Oracle SQL?

Zde je postup; CTE (dates ) vytvoří "kalendář" všech dat počínaje 2018-10-01 , pro počet dní mezi 2018-10-01 a 2018-12-31 . Toto odpovídá na vaši 2. otázku.

Pro 1. otázku pomocí TO_CHAR funkce s vhodnou maskou formátu (dy ) a jazyk data (protože kdybych ho nepoužil, dostali byste chorvatská jména, protože to je můj výchozí jazyk), vyberte všechny neděle.

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. funkce xlookup v SQL

  2. Přírůstkové statistiky SQL Server 2014

  3. Jak ASIN() funguje v MariaDB

  4. Jak předefinovat sloupce vrácené uloženou procedurou na serveru SQL Server