Sql 会计年度日期序列生成
我有一个名为“会计年度”的表,其中包含“开始日期”、“结束日期”列(空表),我希望在2060年之前插入每个会计年度的记录Sql 会计年度日期序列生成,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,我有一个名为“会计年度”的表,其中包含“开始日期”、“结束日期”列(空表),我希望在2060年之前插入每个会计年度的记录 Decription start_date end_date FISCAL YEAR 2000 7/1/1999 6/30/2000 会计年度开始日期为7月1日,结束日期为明年6月31日 我试过的 select add_months(start_date ,-6),add_months
Decription start_date end_date
FISCAL YEAR 2000 7/1/1999 6/30/2000
会计年度开始日期为7月1日,结束日期为明年6月31日
我试过的
select add_months(start_date ,-6),add_months(start_date ,6)-1 from (
select to_date('20000101','yyyymmdd') start_date from dual )
basis
到2060年我如何生成这个序列
Decription start_date end_date
FISCAL YEAR 2000 7/1/1999 6/30/2000
SQL>select
2截止日期('01-07-'| |(1999+rownum),'dd.mm.yyyy')开始日期,
3截止日期('30-06-'| |(2000+rownum),'dd.mm.yyyy')完成日期
4来自双
5按级别连接您可以这样做:
SELECT
ADD_MONTHS(DATE '1999-07-01', 12*(LEVEL-1)) as fiscal_year_begin,
ADD_MONTHS(DATE '1999-07-01', 12*LEVEL) - INTERVAL '1' DAY AS fiscal_year_end
FROM dual
CONNECT BY LEVEL < 60;
FISCAL_YEAR_BEGIN FISCAL_YEAR_END
1999-07-01 2000-06-30
2000-07-01 2001-06-30
2001-07-01 2002-06-30
2002-07-01 2003-06-30
2003-07-01 2004-06-30
2004-07-01 2005-06-30
2005-07-01 2006-06-30
2006-07-01 2007-06-30
2007-07-01 2008-06-30
2008-07-01 2009-06-30
...
选择
增加月数(日期“1999-07-01”,12*(一级))作为财政年度开始,
增加月数(日期“1999-07-01”,12*级)-间隔“1”天作为会计年度结束
来自双重
按<60级连接;
财政年度开始财政年度结束
1999-07-01 2000-06-30
2000-07-01 2001-06-30
2001-07-01 2002-06-30
2002-07-01 2003-06-30
2003-07-01 2004-06-30
2004-07-01 2005-06-30
2005-07-01 2006-06-30
2006-07-01 2007-06-30
2007-07-01 2008-06-30
2008-07-01 2009-06-30
...
这将很困难:六月只有30天!请参阅可能的副本