OracleでISO 8601形式の日付を出力する
timestamp型の日時をUTCへ変換したうえでISO 8601形式で出力します。
前提条件
- ISO 8601形式で表示させる日付列の型はtimestamp型であること
- 日付列の各行の値は、DBMS(Oracle)のタイムゾーンに準じたものであること(例えば、DBMSのタイムゾーンがJSTである場合はJSTで日付がセットされていること)
コード
to_char( SYS_EXTRACT_UTC(<timestamp型の日付>), 'YYYY-MM-DD"T"HH24:MI:SS.FF3"+0000"' )
例
select sessiontimezone, to_timestamp('2019-01-21 09:12:27.804000') as jst, to_timestamp(sys_extract_utc(to_timestamp('2019-01-21 09:12:27.804000'))) as utc, to_char( sys_extract_utc(to_timestamp('2019-01-21 09:12:27.804000')), 'YYYY-MM-DD"T"HH24:MI:SS.FF3"+0000"' ) as utc_iso8601 from dual;