Oracle如何获取一个时间段内的所有日期

来源:互联网 发布:淘宝差评解释大全 编辑:程序博客网 时间:2024/05/22 23:39

第一种方法:

SELECT ROWNUM, 开始日期 + ROWNUM - 1 AS SHOW_TIME

  FROM (SELECT * FROM DUAL CONNECT BY ROWNUM < 99999)

 WHERE ROWNUM < 结束日期 - 开始日期 + 1;

 

例如查询本月1号到本月最后一天的所有日期:

SELECT ROWNUM, TRUNC(SYSDATE, 'mm') + ROWNUM - 1 AS SHOW_TIME

  FROM (SELECT * FROM DUAL CONNECT BY ROWNUM < 99999)

 WHERE ROWNUM < TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM') - TRUNC(SYSDATE, 'mm') + 1;
==========================================================================

第二种方法:(推荐,效率高)
SELECT ROWNUM, 开始日期 + ROWNUM - 1 AS SHOW_TIME
  FROM DUAL
CONNECT BY ROWNUM < 结束日期 - 开始日期 + 1;

 

例如查询本月1号到本月最后一天的所有日期:

SELECT ROWNUM, TRUNC(SYSDATE, 'MM') + ROWNUM - 1 AS SHOW_TIME
  FROM DUAL
CONNECT BY ROWNUM < TRUNC(ADD_MONTHS(SYSDATE, 1), 'MM') - TRUNC(SYSDATE, 'MM') + 1;

原创粉丝点击