• 締切済み

PLSQLで和暦で一年前の値を求める

PLSQLで和暦で一年前の値を求めるためにadd_monthsを使いたいのですがoracle10ではうまく機能しません。 to_char(add_months(1803,-1),yymm) 1703という値を取得したいのですがどうすればよいのでしょうか?

みんなの回答

回答No.2

データ属性が日付型(data型)であれば、歴の変換や加減算は簡単です。 to_char( to_date('1803','yymm','nls_calendar = ''Japanese Imperial''') - interval '1' year, 'yymm','nls_calendar = ''Japanese Imperial''');

  • SUPER-NEO
  • ベストアンサー率38% (706/1857)
回答No.1

私の考えが間違っていなければ、ADD_MONTHS 関数は、 西暦の日付に対して行うものと認識しております。 一体、質問文中の書き方はどこを参考にされたのでしょうか? 他のバージョンでの動作実績があるとか!? ADD_MONTHS で1年前の値を和暦で取得するには、 1、西暦で1年前の値を取得する 2、和暦変換 以上の2ステップになると思います。 ちなみに、「1、」の方法ですが、 SELECT ADD_MONTHS(SYSDATE, 12 * -1) FROM DUAL; で求められます。

kanmin
質問者

補足

申し訳ありません。 西暦から和暦への変換を教えてもらえますか?

関連するQ&A