我有一个表组,其数据类型为varchar2,其中的数据看起来像(
year_cd
FY15
FY16
FY17 and so on
) 我需要的是,我试图在特定的一年做一个零下1年,就像我考虑2017财年我需要减去1年。 这样的事情 从aaa.groups中选择to_char(add_months(year_cd,-12)) 但它表示非数字字符被发现数字是预期的。请帮忙
答案 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