コンパイラーがどのように非日付を扱うかは、その内容によって異なります。
以下の項目は非日付です。
非日付を日付フィールドと一緒に使用する場合、コンパイラーは非日付を形式が日付フィールドと互換性のある日付、または単純な数値と解釈します。この解釈は、次に示すように、日付フィールドおよび非日付が使われたコンテキストによって異なります。
日付フィールドを非日付と比較する場合、非日付は、年と年以外の文字の文字数の点で日付フィールドと互換性があると見なされます。次の例では、971231 という非日付リテラルをウィンドウ化日付フィールドと比較します。
01 Date-1 Pic 9(6) Date Format yyxxxx.
. . .
If Date-1 Greater than 971231 . . .
非日付リテラル 971231 は、Date-1 と同じ DATE FORMAT を持っているかのように処理されますが、開始年 (base year) は 1900 です。
サポートされるすべての算術演算で、非日付フィールドは単純数値として処理されます。 次の例では、Date-2 のグレゴリオ日付に数値 10000 を加算しています。つまり、日付に 1 年が加えられます。
01 Date-2 Pic 9(6) Date Format yyxxxx.
. . .
Add 10000 to Date-2.日付フィールドを非日付に移動することはサポートされません。しかし、UNDATE 組み込み関数を使用してこれを行うことができます。
非日付を日付フィールドに移動する場合、送信フィールドは、年と年以外の文字の文字数の点で、受信フィールドと互換性があると見なされます。例えば、非日付をウィンドウ化日付フィールドに移動する場合、非日付フィールドには 2 桁年と互換性のある日付が入っているものと想定されます。