Oracle获取每分钟、每10分钟、每小时、每天、每周、每月、每年的时间或日期

[sql] view plain copy

  1. -- 获取某天的每分钟时间  
  2. SELECT TO_DATE('2018-03-23''YYYY-MM-DD') + (ROWNUM - 1) / (24 * 60)  
  3. FROM DUAL CONNECT BY ROWNUM <= 24*60;  
  4.   
  5. -- 获取某天的每10分钟时间  
  6. SELECT TO_DATE('2018-03-23''YYYY-MM-DD') + (ROWNUM - 1) / (24 * 6)  
  7. FROM DUAL CONNECT BY ROWNUM <= 24*6;  
  8.   
  9. -- 获取某天每小时的时间  
  10. SELECT TO_DATE('2018-03-23''YYYY-MM-DD') + (ROWNUM - 1) / 24  
  11. FROM DUAL CONNECT BY ROWNUM <= 24;  
  12.   
  13. -- 获取某时间段内每天的日期  
  14. SELECT TO_DATE('2018-03-23''YYYY-MM-DD') + (ROWNUM - 1)  
  15. FROM DUAL CONNECT BY ROWNUM <=  
  16. TRUNC(TO_DATE('2020-03-23''YYYY-MM-DD')) - TRUNC(TO_DATE('2018-03-23''YYYY-MM-DD'));  
  17.   
  18. -- 获取某时间段内每周的起始日期和其周数  
  19. SELECT TRUNC(TO_DATE('2018-03-02''YYYY-MM-DD') + (ROWNUM - 1) * 7, 'D') + 1 AS STARTTIME,  
  20. TO_CHAR(TO_DATE('2018-03-02''YYYY-MM-DD') + (ROWNUM - 1) * 7, 'IW'AS WEEK  
  21. FROM DUAL CONNECT BY ROWNUM <=  
  22. TRUNC(TO_DATE('2019-03-02''YYYY-MM-DD') - TO_DATE('2018-03-02''YYYY-MM-DD')) / 7 + 1;  
  23.   
  24. -- 获取某时间段内的每月  
  25. SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2018-03-02''YYYY-MM-DD'), ROWNUM - 1), 'YYYY-MM')  
  26. FROM DUAL CONNECT BY ROWNUM <=  
  27. CEIL(MONTHS_BETWEEN(TO_DATE('2020-03-03''YYYY-MM-DD'), TO_DATE('2018-03-02','YYYY-MM-DD')));  
  28.   
  29. -- 获取某时间段内每年的年份  
  30. SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2018-03-02''YYYY-MM-DD'), (ROWNUM - 1) * 12), 'YYYY')  
  31. FROM DUAL CONNECT BY ROWNUM <=  
  32. CEIL(MONTHS_BETWEEN(TO_DATE('2020-03-03''YYYY-MM-DD'), TO_DATE('2018-03-02','YYYY-MM-DD')) / 12);  
  33.  

你可能感兴趣的:(数据库)