アプリケーションの中には、日付フィールドで、トリガーとして機能する (つまり、ある特殊な処理が必要であることを示す) ゼロ並びのような特殊値を使用するものが あります。
例えば、Orders ファイルで Order-Date に 0 の値を使用すると、レコードはオーダー・レコードではなく顧客合計レコードであることを意味するという場合です。プログラムは、次のように日付を 0 と比較します。
01 Order-Record.
05 Order-Date Pic S9(5) Comp-3 Date Format yyxxx.
. . .
If Order-Date Equal Zero Then . . .
しかし、この比較は、リテラル値の Zero が非日付のため、仮定による世紀ウィンドウに対してウィンドウ操作されて値が 1900000 になるので、有効ではありません。
あるいは、次のように、リテラル比較の代わりに符号条件を使用できます。符号条件を使用すると、Order-Date は非日付として扱われ、世紀ウィンドウは考慮に入れられません。
If Order-Date Is Zero Then . . .
このアプローチが適用されるのは、符号条件内のオペランドが算術式ではなく単純な ID である場合だけです。式を指定した場合は、適宜世紀ウィンドウが適用されてその式が最初に評価されます。そのあと、その式の結果に対して符号条件が比較されます。
代わりに UNDATE 組み込み関数を使用しても、同じ結果が得られます。
関連概念
非日付の処理
関連タスク
日付処理の明示的制御
関連参照
DATEPROC