oracle的年份减1(去年)

时间:2017-03-24 18:27:15

标签: sql oracle oracle11g

我有一个表组,其数据类型为varchar2,其中的数据看起来像(

year_cd
FY15
FY16
FY17 and so on

)  我需要的是,我试图在特定的一年做一个零下1年,就像我考虑2017财年我需要减去1年。 这样的事情 从aaa.groups中选择to_char(add_months(year_cd,-12))  但它表示非数字字符被发现数字是预期的。请帮忙

1 个答案:

答案 0 :(得分:0)

您不能直接在FYXX上使用add_months

with t(year_cd) as (
  select 'FY15' from dual union all
  select 'FY16' from dual union all
  select 'FY17' from dual
  )
select 
  year_cd,
  to_char(add_months(to_date(year_cd, '"FY"YY'), -12), '"FY"YY') last_year_cd
from t;

产地:

YEAR_CD LAST_YEAR_CD
--------------------
FY15    FY14
FY16    FY15
FY17    FY16