close

  感謝同事提供這個SQL:

select to_date('20030601', 'yyyymmdd') + rownum - 1 as dt
from all_objects
where to_date('20030601', 'yyyymmdd') + rownum - 1 <= to_date('20030831', 'yyyymmdd')

  如此會產出從20030601, 20030602, 20030603…, 20030830, 20030831的日期值,這是Oracle上的方法。

  後來發覺使用all_objects效能太差,又找到另一個方法:

select to_date('20090518','yyyymmdd')-1 + level as dt
from    dual
where   (to_date('20090518','yyyymmdd')-1+level) <= last_day(to_date('20090525','yyyymmdd'))
connect by level<=to_date('20090525','yyyymmdd')-to_date('20090518','yyyymmdd')

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()