ABAP 日付の内部書式・外部書式への変換

  データ定義&編集

概要

ABAP プログラムを作る上で気をつけないといけない事が内部書式、外部書式の変換だろう。
これらの変換を入れていないと、間違った値をデータベースに格納してしまったり、検索できなかったり、
あるいはショートダンプを発生させる原因となる。
適切なファンクションモジュールを使用し変換してから値を使用しよう。
ここでは日付の変換方法について記載します。

サンプルコード:内部書式-> 外部書式

DATA: v_external_date(12)   TYPE c.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
  EXPORTING
    date_internal = sy-datum         "今日の日付
  IMPORTING
    date_external = v_external_date. "ユーザーセッティングのフォーマット

20170818に実行した場合、2017/08/18と変換された値が返ってくる

サンプルコード:外部書式-> 内部書式

DATA: v_internal_date       TYPE d.
v_external_date = '2017/08/18'.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
  EXPORTING
    date_external = v_external_date
  IMPORTING
    date_internal = v_internal_date.

この例では逆に、20170818が返ってくる

Typeの定義方法はこちらを参照
Dataの定義方法はこちらを参照