列出两个日期间的所有日期(使用oracle的rownum实现在sql中使用循环)
oracle中有一个字段rownum,长期以来只知道它是记录的行号,却没有想过用它做更有价值的事情。
有两个时间点,要求列出这两天之间的所有日期,如2010-04-01和2010-04-10,列出
2010-4-1
2010-4-2
2010-4-3
2010-4-4
2010-4-5
2010-4-6
2010-4-7
2010-4-8
2010-4-9
首先想到的是用环循,可是又不能用存储过程,在sql中怎么用循环?rownum帮了大忙了
SELECT ROWNUM AS FOR_I FROM ALL_OBJECTS WHERE ROWNUM < 10;
SELECT TRUNC(TO_DATE('2010-04-01', 'yyyy-mm-dd')) + ROWNUM - 1 AS DATES FROM ALL_OBJECTS WHERE TRUNC(TO_DATE('2010-04-01', 'yyyy-mm-dd')) + ROWNUM - 1 < TRUNC(TO_DATE('2010-04-10', 'yyyy-mm-dd'));