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

Как да генерирам всички дати от неделя между 2 дати в oracle sql?

Ето как; CTE (dates ) създава „календар“ с всички дати, започващи от 2018-10-01 , за броя дни между 2018-10-01 и 2018-12-31 . Това отговаря на втория ви въпрос.

За първия въпрос, използвайки TO_CHAR функция с подходяща маска за формат (dy ) и език за дата (тъй като, ако не го използвах, ще получите хърватски имена, тъй като това е моят език по подразбиране), изберете всички недели.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql подреждане по с вътрешна клауза за избор и групиране по събиране

  2. Комбиниране на 2 блока if и създаване на единична заявка

  3. Индексът не се използва поради преобразуване на типа?

  4. конфигурирайте php с oracle

  5. Замяна на нула въз основа на условие