我有一个oracle数据库,我需要一个包含所有日期跨度为2年的表; 例如从01/01/2011
到01/01/2013
。oracle日期序列?
首先,我想到了一个序列,但显然只支持类型为号,所以现在我正在寻找一种有效的方式来做到这一点
欢呼骗局
我有一个oracle数据库,我需要一个包含所有日期跨度为2年的表; 例如从01/01/2011
到01/01/2013
。oracle日期序列?
首先,我想到了一个序列,但显然只支持类型为号,所以现在我正在寻找一种有效的方式来做到这一点
欢呼骗局
如果你想要的是填充块的连续日期记录,这很容易做到。以下查询生成十个日期。您只需调整种子日期以给出起点,并在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>
比方说,我们有一个名为表:基准,与列数据(日期型) 表包含:
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