zukucode
主にWEB関連の情報を技術メモとして発信しています。

Oracle システム日付をYYYYMMDD形式などの文字列型に変換する

Oracleでシステム日付を文字列で扱う方法をまとめます。

システム日付を取得する

Oracleでシステム日付を取得するにはSYSDATEを使用します。

SELECT
  SYSDATE
FROM
  DUAL

日付を文字列型に変換する

SYSDATEは日付型で取得されます。

YYYYMMDD形式などの文字列型に変換したい場合はTO_CHARでフォーマットを指定して変換します。

SELECT
  TO_CHAR(SYSDATE, 'YYYYMMDD')
  ,TO_CHAR(SYSDATE, 'YYYY/MM/DD')
  ,TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')
FROM
  DUAL

時刻をフォーマットするときにHHだけだと12時間表記になります。24時間表記にしたい場合はHH24とします。

文字列を日付型に変換する

逆に20170123などのYYYYMMDD型の文字列型のデータを日付型に変換するにはTO_DATEを使用します。

SELECT
  TO_DATE('20170123', 'YYYYMMDD')
  ,TO_DATE('2017/01/23', 'YYYY/MM/DD')
  ,TO_DATE('2017/01/23 23:59:59', 'YYYY/MM/DD HH24:MI:SS')
FROM
  DUAL

関連記事