Sql 我怎样才能得到公司';日期是哪一个会计年度?

Sql 我怎样才能得到公司';日期是哪一个会计年度?,sql,oracle,Sql,Oracle,本公司以本年7月1日至次年6月30日为会计年度,以1月1日为会计年度。例如,2014年5月20日为2014财年,2014年7月21日为2015财年。我必须显示雇用日期以及会计年度(一年中只有4位数字) 您的会计年度比日历年提前六个月,因此您可以添加六个月(到月的第一天,以避免在月底日期出现任何异常或滚动),并查看这是哪一年: select hire_date, extract(year from add_months(trunc(hire_date, 'MM'), 6)) as fiscal

本公司以本年7月1日至次年6月30日为会计年度,以1月1日为会计年度。例如,2014年5月20日为2014财年,2014年7月21日为2015财年。我必须显示<代码>雇用日期以及会计年度(一年中只有4位数字)


您的会计年度比日历年提前六个月,因此您可以添加六个月(到月的第一天,以避免在月底日期出现任何异常或滚动),并查看这是哪一年:

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;

.

起作用了。我正要发布我所做的事情,这也奏效了

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;

@andrew明白了。感谢选择案例,当月份(雇用日期)>7,然后年份(雇用日期)+1,否则年份(雇用日期)从X开始作为财政年度结束;当月份(雇用日期)>7,然后年份(雇用日期)+1,其他年份(雇用日期)从X开始作为会计年度结束时,所选案例有什么问题
month()和
year()
不是Oracle函数。您可以使用
extract()
代替.Worked。我正要把我所做的事发出去。选择雇用数据,提取时的案例(从雇用日期算起的月份)>7,然后提取(从雇用日期算起的年份)+1,否则提取(从雇用日期算起的年份)
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;