EXTRCT (日付/時刻/タイム・スタンプの抽出)

自由形式構文 (許可されていない - %SUBDT 組み込み関数を使用)
コード 演算項目 1 演算項目 2 結果フィールド 標識
EXTRCT (E) 日付/時刻: 期間コード 転送先 _ ER _

EXTRCT 命令は次の 1 つを結果フィールドに指定されたフィールドに戻します。

情報を要求する日付、時刻、またはタイム・スタンプは、演算項目 2 に指定して、 その後に期間コードを続けます。 演算項目 2 に指定する記入項目 は、フィールド、サブフィールド、テーブル要素、または配列要素と することができます。 期間コードは、演算項目 2 のデータ・タイプと一貫性のある ものでなければなりません。有効な期間コードについては、日付命令を参照してください。

演算項目 1 はブランクでなければなりません。

結果フィールドは、数値または文字フィールド、サブフィールド、配列/テー ブル要素とすることができます。 結果フィールドには、その内容が消去されてから、取り出されたデータが割り 当てられます。文字の結果フィールドの場合には、データは左寄せされて結果フィールドに入 れられます。

注:
年間通算日 (形式 *JUL) を指定した EXTRCT 命令を使用している場合には、 期間コード *D を指定するとその月の日が戻されて、*M を指定するとその年の 月が戻されます。 日と月を 3 桁の形式にしたい場合には、基底ポインターを使用して取り出すこ とができます。 年間通算日形式で表示する場合の例については、図 99 を参照してください。

EXTRCT 例外 (プログラム状況コード 112) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 エラー処理の詳細について は、プログラム例外/エラーを参照してください。

詳細については、日付命令を参照してください。

図 322. EXTRCT 命令
     D LOGONDATE       S               D
     D DATE_STR        S             15
     D MONTHS          S              8    DIM(12) CTDATA
     C*0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
      * Move the job date to LOGONDATE.  By default, LOGONDATE has an *ISO
      * date format, which contains a 4-digit year.  *DATE also contains a
      * 4-digit year, but in a different format, *USA.
     C     *USA          MOVE      *DATE         LOGONDATE
      *
      * Extract the month from a date field to a 2-digit field
      * that is used as an index into a character array containing
      * the names of the months.  Then extract the day from the
      * timestamp to a 2-byte character field which can be used in
      * an EVAL concatenation expression to form a string.
      * For example, if LOGONDATE is March 17, 1996, LOGMONTH will
      * contain 03, LOGDAY will contain 17, and DATE_STR will contain
      * 'March 17'.
     C                   EXTRCT    LOGONDATE:*M  LOGMONTH          2 0
     C                   EXTRCT    LOGONDATE:*D  LOGDAY            2
     C                   EVAL      DATE_STR = %TRIMR(MONTHS(LOGMONTH))
     C                                        + ' ' + LOGDAY
     C                   SETON                                        LR
** CTDATA MONTHS
January
February
March
April
May
June
July
August
September
October
November
December


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]