変換-日付、反転日( CONVERT DATE ... INTO INVERTED-DATE ...)

廃止された構文

CONVERT { DATE dat1 INTO INVERTED-DATE dat2 { INVERTED-DATE dat1 INTO DATE dat2 }
        

効果

ステートメントCONVERTのこれらのバリアントは、クラスでは許可されていません。これらは、dat1の文字のようなデータオブジェクトの数字を9の補数(9との差)に変換し、結果をデータオブジェクトdat2に割り当てます。データオブジェクトDAT1及びDAT2が有していなければならない フラット文字状のデータ・タイプ長さ8と同じデータオブジェクトが指定することができDAT2用としてDAT1を

ノート

  • これらの形式のCONVERTステートメントは、クラスでは使用できません。以前は、内部テーブルの日付フィールドによる並べ替えや、並べ替え方向を変更するための抽出使用されていました これらは 、SORTステートメントのASCENDINGおよびDESCENDING オプションに置き換えられました必要に応じて、次のTRANSLATEステートメントを使用して9の補数を形成できます
dat2 = dat1。
TRANSLATE dat2 USING '09182736455463728190'。
  • ここに表示されているCONVERT DATE ステートメントのバリアントを、タイムスタンプの作成に使用されるステートメントCONVERT DATE ... INTO TIME STAMP混同しないでください


次のプログラムセクションでは、内部テーブルsflight_tabfldateで降順に並べ替えます。

DATA sflight_tab TYPE TABLE OF sflight.

FIELD-SYMBOLS <sflight_wa> TYPE sflight.

SELECT * FROM sflight INTO TABLE @sflight_tab.

LOOP AT sflight_tab ASSIGNING <sflight_wa>.
  CONVERT DATE <sflight_wa>-fldate
    INTO INVERTED-DATE <sflight_wa>-fldate.
ENDLOOP.

SORT sflight_tab BY fldate.

LOOP AT sflight_tab ASSIGNING <sflight_wa>.
  CONVERT INVERTED-DATE <sflight_wa>-fldate
     INTO DATE <sflight_wa>-fldate.
ENDLOOP.

  

最後の9行は1行で置き換えることができます。

SORT sflight_tab BY fldate DESCENDING。

 

例外

処理できない例外

    • 原因:無効なフィールド長のため、変換できません。
      ランタイムエラー: CONVERT_ILLEGAL_CONVERSION
posted @ 2020-09-24 14:49  Park_SAP  阅读(330)  评论(0编辑  收藏  举报