sql >> Database teknologi >  >> RDS >> Oracle

Hvordan genererer jeg alle datoer for søndag mellem 2 datoer i oracle sql?

Sådan gør du; CTE (dates ) opretter en "kalender" med alle datoer fra 2018-10-01 , i antal dage mellem 2018-10-01 og 2018-12-31 . Dette besvarer dit andet spørgsmål.

For det første spørgsmål, brug TO_CHAR funktion med passende formatmaske (dy ) og datosprog (fordi, hvis jeg ikke brugte det, ville du få kroatiske navne, da det er mit standardsprog), vælg alle søndage.

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. T-SQL-forespørgsel for at vise tabeldefinition?

  2. CONCAT() Funktion i Oracle

  3. Installation af Ubuntu 18.04 til SQL Server 2019 på virtuel maskine ved hjælp af VMware Workstation

  4. Oracle foretrukne kolonnelængder