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

Списък с дати + часове между две дати

опитайте това,

ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD HH AM';

SELECT to_date('12/31/2017', 'MM/DD/YYYY') + (FLOOR(rownum/24) + (MOD(rownum-1, 24)/24)) dt
 FROM DUAL 
 CONNECT BY rownum <= ((to_date('01/02/2018', 'MM/DD/YYYY')+(1/23)) - to_date('12/31/2017', 'MM/DD/YYYY') + (MOD(rownum, 24)/24)) * 24
ORDER BY 1;

Изход:

DT        
-----------
12/31 12 AM
12/31 01 AM
12/31 02 AM
12/31 03 AM
12/31 04 AM
12/31 05 AM
12/31 06 AM
12/31 07 AM
12/31 08 AM
12/31 09 AM
12/31 10 AM
12/31 11 AM
12/31 12 PM
12/31 01 PM
12/31 02 PM
12/31 03 PM
12/31 04 PM
12/31 05 PM
12/31 06 PM
12/31 07 PM
12/31 08 PM
12/31 09 PM
12/31 10 PM
01/01 12 AM
01/01 01 AM
01/01 02 AM
01/01 03 AM
01/01 04 AM
01/01 05 AM
01/01 06 AM
01/01 07 AM
01/01 08 AM
01/01 09 AM
01/01 10 AM
01/01 11 AM
01/01 12 PM
01/01 01 PM
01/01 02 PM
01/01 03 PM
01/01 04 PM
01/01 05 PM
01/01 06 PM
01/01 07 PM
01/01 08 PM
01/01 09 PM
01/01 10 PM
01/01 11 PM
01/02 12 AM
01/02 01 AM
01/02 02 AM
01/02 03 AM
01/02 04 AM
01/02 05 AM
01/02 06 AM
01/02 07 AM
01/02 08 AM
01/02 09 AM
01/02 10 AM
01/02 11 AM
01/02 12 PM
01/02 01 PM
01/02 02 PM
01/02 03 PM
01/02 04 PM
01/02 05 PM
01/02 06 PM
01/02 07 PM
01/02 08 PM
01/02 09 PM
01/02 10 PM
01/02 11 PM

71 избрани реда

Ако искате да посочите началния и крайния час, използвайте заявката по-долу, току-що промених клаузата CONNECT BY и ORDER BY на първата си заявка.

SELECT to_date('12/31/2017 10:00 PM', 'MM/DD/YYYY HH:MI AM') + (FLOOR(rownum/24) + (MOD(rownum-1, 24)/24)) dt
   FROM DUAL 
CONNECT BY rownum <= CEIL(((to_date('01/01/2018 02:00 AM', 'MM/DD/YYYY HH:MI AM') - to_date('12/31/2017 10:00 PM', 'MM/DD/YYYY HH:MI AM')) * 24))+1
  ORDER BY rownum;

Изход

DT        
-----------
12/31 10 PM
12/31 11 PM
01/01 12 AM
01/01 01 AM
01/01 02 AM


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на нов атрибут в база данни на Oracle от два други атрибута

  2. Как да извика съхранена процедура на Oracle в Python?

  3. динамично предаване на името на таблицата в Oracle for цикъл

  4. SQL заявка за преобразуване на списък с числа, съпоставени с няколко диапазона, в списък със стойности

  5. Как мога да създам формуляр за вмъкване/актуализация за множество таблици в Oracle Apex 5.1.4