%CHAR(日付|時刻|タイム・スタンプ {: 形式})

変更の始まり%CHAR は、日付、時刻、またはタイム・スタンプ式の値を文字に変換できます。変更の終わり

最初のパラメーターが定数の場合、変換はコンパイル時に行われます。

2 番目のパラメーターには、戻された文字データが変換される目標の日付、時刻、またはタイム・スタンプの形式が入ります。戻り値には、指定された形式の後にゼロが続いていない限り、区切り記号を含みます。

変更の始まり戻り値の CCSID は *JOBRUN です。変更の終わり

詳細については、変換命令または 組み込み関数を参照してください。

日付、時刻、タイム・スタンプがパラメーターに指定された %CHAR の例

変更の始まり
    DCL-S date DATE INZ(D'1997/02/03');
    DCL-S time TIME INZ(T'12:23:34');
    DCL-S timestamp6 TIMESTAMP INZ(Z'1997-02-03-12.45.59.123456');
    DCL-S timestamp0 TIMESTAMP(0) INZ(Z'1997-02-03-12.45.59');
    DCL-S timestamp1 TIMESTAMP(1) INZ(Z'1997-02-03-12.45.59.1');
    DCL-S result VARCHAR(100);
変更の終わり
次の例では、時刻および日付をデフォルト形式でフォーマットします。 デフォルト形式は両方とも *USA であると想定しています。
   result = 'It is ' + %CHAR(time) + ' on ' + %CHAR(date);
   // result = 'It is 12:23 PM on 02/03/1997'
次の例では、時刻および日付をジョブ形式でフォーマットします。 ジョブ日付形式は *MDY、ジョブ時刻区切り記号はピリオドであると想定しています。
   result = 'It is ' + %CHAR(time : *jobrun)
          + ' on ' + %CHAR(date : *jobrun);
   // result = 'It is 12.23.34 on 97-02-03'
次の例では、時刻および日付を特定の形式でフォーマットします。
   result = 'It is ' + %CHAR(time : *hms:)
          + ' on ' + %CHAR(date : *iso);
   // result = 'It is 12:23:34 on 1997-02-03'
変更の始まり次の例では、タイム・スタンプを区切り記号を使用してフォーマットします。
   result = %CHAR(timestamp0);
   // result = '1997-02-03-12.45.59'
   result = %CHAR(timestamp1);
   // result = '1997-02-03-12.45.59.1'
   result = %CHAR(timestamp6);
   // result = '1997-02-03-12.45.59.123456'
変更の終わり
変更の始まり次の例では、「&」区切り記号を指定することによって、区切り記号なしでタイム・スタンプをフォーマットします。
   result = %CHAR(timestamp0 : *iso&);
   // result = '19970203124559'
   result = %CHAR(timestamp1 : *iso&);
   // result = '199702031245591'
   result = %CHAR(timestamp6 : *iso&);
   // result = '19970203124559123456'
変更の終わり
結果の一部のみが必要な場合は、%CHAR 結果と一緒に %SUBST を使用できます。
  result = 'The time is now ' + %SUBST (%CHAR(time):1:5) + '.';
  // result = 'The time is now 12:23.'