2017-03-24 8 views
-2

iがVARCHAR2などのデータ型に提出年間を持っているテーブル群を持っており、その中のデータは、iが必要なもの(年マイナス1は、Oracleには、

year_cd 
FY15 
FY16 
FY17 and so on 

) ように見える(前年度に行きます)私はFY1をマイナス1年にする必要があるように、特定の年にマイナス1年をしようとしています。 このようなもの aaa.groups からto_char(add_months(year_cd、-12))を選択しましたが、数値が予想された場所に数字以外の文字が見つかりました。助けてください

答えて

0

add_monthsはFYXXで直接使用することはできません。

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 
+0

TO_DATE(year_cd、 ' "FY" YY') –

+0

@DuduMarkovitz - すごいです!私はリテラルを使用することができたと気づかなかった:) Thanks – GurV

+0

ありがとう、それは働いた、あなたの迅速なヘルプに感謝します。 – gowtami

関連する問題