Oracle Date型をTO_CHARなしで「日時」表示する
OracleはTIMESTAMP型があるのに、伝統的にDATE型を使うので、タイムスタンプ的な列を出力するときにちょっと面倒。
通常はGUIのデータベースビューアを使いますが、場合によってはSQL*PLUSを使う必要があります。列名を指定すれば、
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
とすれば年月日時分秒表示ができます。でも、"*"(全列)の場合はどうするのでしょうか。
当然のごとく、対処方法があります。"NLS_DATE_FORMAT"というパラメータにフォーマットを設定します。(*サポートしているバージョンは不明)
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'
これを発行すれば、セッション内のDATE型の表示が "TO_CHAR(date-field, 'YYYY-MM-DD HH24:MI:SS')" としたのと同じになります。