Oracle で和暦を表示

OracleSQLだけで和暦を表示する方法。

 SQL> select
  2> to_char(sysdate, 'eeyy/mm/dd','nls_calendar=''Japanese Imperial''')
  3> from dual;

 TO_CHAR(SYSDATE,'EEYY/MM/DD','NLS_CALENDAR=''JAPANESEIMPERIAL''')
 ----------------------------------------------------------------------------
 平成18/10/16

NLS_CALENDAR で Japanese Imperial を指定するのがポイント。

フォーマットは「EE」が漢字で元号、「E」が元号の略号(昭和:S, 平成:H 等)、明治以降(1868年9月8日以降)で変換が可能。