2010-01-18 82 views
7

我有一個oracle數據庫,我需要一個包含所有日期跨度爲2年的表; 例如從01/01/201101/01/2013oracle日期序列?

首先,我想到了一個序列,但顯然只支持類型爲號,所以現在我正在尋找一種有效的方式來做到這一點

歡呼騙局

回答

17

如果你想要的是填充塊的連續日期記錄,這很容易做到。以下查詢生成十個日期。您只需調整種子日期以給出起點,並在connect by子句中輸入level以適合您的終點,然後將其插入insert語句。

SQL> select (trunc(sysdate, 'MM')-1) + level 
    2 from dual 
    3 connect by level <= 10 
    4/

(TRUNC(SY 
--------- 
01-JAN-10 
02-JAN-10 
03-JAN-10 
04-JAN-10 
05-JAN-10 
06-JAN-10 
07-JAN-10 
08-JAN-10 
09-JAN-10 
10-JAN-10 

10 rows selected. 

SQL> 
0

比方說,我們有一個名爲表:基準,與列數據(日期型) 表包含:

21-01-2010 
22-01-2010 
01-12-2009 
06-10-2008 
03-07-2007 

那麼你可以使用:

SELECT * 
    FROM datums 
WHERE datum 
BETWEEN to_date('01/01/2009','mm/dd/yyyy') 
    AND to_date('12/31/2010','mm/dd/yyyy') 

結果:

21-01-2010 
22-01-2010 
01-12-2009