我如何才能获得该公司的财政年度?

时间:2014-07-31 21:31:44

标签: sql oracle

公司使用今年7月1日到次年的6月30日作为会计年度,在1月1日的年度被参照。例如,2014年5月20日是2014财年,2014年7月21日是2015财年。我必须显示hire_date以及会计年度(当年只有4位数)。

Hire_date
01-jun-98
16-aug-99
02-feb-09
01-mar-06
01-dec-08
17-mar-99
16-feb-07

2 个答案:

答案 0 :(得分:0)

您的会计年度比日历年提前了六个月,因此您可以添加六个月(到月的第一天以避免在月末发生任何奇怪或过时的日期),并查看哪一年是:

select hire_date,
  extract(year from add_months(trunc(hire_date, 'MM'), 6)) as fiscal_year
from t42
order by hire_date;

HIRE_DATE  FISCAL_YEAR
---------  -----------
01-dec-08         2009
01-jun-98         1998
01-mar-06         2006
02-feb-09         2009
16-aug-99         2000
16-feb-07         2007
17-mar-99         1999

您可以使用extract()case,类似于Andrew暗示的内容:

select hire_date,
  extract(year from hire_date)
    + case when extract(month from hire_date) >= 7 then 1
        else 0 end as fiscal_year
from t42
order by hire_date;

SQL Fiddle

答案 1 :(得分:0)

的工作。我正准备发布我所做的事情,这也有效。

Select Hire_data,
case
when extract(Month from Hire_date)>=7 then
extract(year from Hire_date)+1
else extract(year from Hire_date)
end as Fiscal
from x;