メニューボタン
サポートチーム便り2012.04.18

%DATEを使用した日付データの変換方法について

Question

RPG IVで、日付がCYYMMDDの7ケタで入力されたフィールドWKDATEを利用し、RPGの日付フィールド(データ・タイプD)に日付を入力したいのですが、どのようにコーディングをすればよいでしょうか。その他にも'12/03/28'のように区切り文字の入っているフィールドからデータ・タイプDのフィールドに日付を入力するには、どうすればよいでしょうか。

Answer

%DATEを使用すると容易に実現が可能です。
RPG IV上にて、FREE句を使用してコーディングを行う必要があります。
%DATEの構文は以下の通りです。

結果のフィールド=%DATE(使用したいフィールド:日付形式)

※使用したいフィールドに、物理ファイルの日付フィールドは使用できません。
(別のフィールドに置き換えれば使用できます)
※結果のフィールドはデータ・タイプDの指定が必要です。

図1は7ケタのフィールドが数字フィールドの場合の例です。
フィールドISODATEに、'2012-03-13'が入ります。

図2は7ケタのフィールドが文字フィールドの場合の例です。
フィールドISODATEに、'1985-11-03'が入ります。

数字フィールドと文字フィールドのコーディングの違いは、「日付形式」のすぐ後ろにある「区切り文字」指定の有無です。
文字フィールドの内容が'2012/03/03'ならば、区切り文字は / となり、*YMD/ という指定をする必要があります。区切り文字が一切ない場合は、数字の0を指定します。
日付形式の詳しい種類に関しては「DATFMTキーワード」で検索するとネット上で一覧を見つける事ができます。
また、内部データ・タイプDのフィールドはyyyy-mm-ddとなります。ハイフンを取り除くには、別フィールドに内容を移してハイフンを取り除く処理を行う必要があります。

あわせて読みたい記事

PAGE TOP