日付フィールドは、英数字カテゴリー、ゾーン 10 進数、または内部 10 進数にすることができます。妥当性および比較タイプ (数字または英数字) に関する既存の規則が適用されます。 例えば、英数字の日付フィールドは、内部 10 進数日付フィールドと比較することはできません。これらの規則に加えて、2 つの日付フィールドを それらに互換性がある場合だけ比較できます。すなわち、 ウィンドウ表示西暦年でも拡張西暦年でもよい年部分を除いて、同じ日付フォーマットでなければなりません。
年末尾型日付フィールドの場合、サポートされる唯一の比較は、 日付フォーマットが同じ 2 つの年末尾型日付フィールドの間の IS EQUAL TO および IS NOT EQUAL TO、 または年末尾型日付フィールドと非日付データの間の比較だけです。
表 1 は、非年末尾型日付フィールドについてサポートされる比較を示しています。この表では、比較の実行方法を記述するのに以下の用語を使用しています。
DATEPROC(TRIG) コンパイラー・オプションが有効である場合、この拡張では日付フィールドの比較オペランドのトリガー値が考慮されます。
DATEPROC(NOTRIG) コンパイラー・オプションが有効である場合、 比較は拡張西暦年の世紀部分を 19 とみなすことによって非日付オペランドが拡張されたかのようにして実行されます。
DATEPROC(TRIG) コンパイラー・オプションが有効である場合、 比較では非日付オペランドの日付トリガー値が考慮されます。英数字のオペランドの場合のトリガー値は LOW-VALUE、HIGH-VALUE、および SPACE です。 DATE FORMAT 節に最低 1 つの X が含まれるウィンドウ表示日付フィールド (つまりウィンドウ表示西暦年だけではないウィンドウ表示日付フィールド) と比較される英数字および数字オペランドの場合、全桁 0 または全桁 9 の値もトリガーとして扱われます。非日付オペランドの内容がトリガー値の場合、比較は、トリガー値を拡張西暦年の仮定世紀部分にコピーすることによって、非日付オペランドが拡張されたかのようにして実行されます。非日付オペランドの内容がトリガー値でないなら、拡張西暦年の世紀部分は 19 とみなされます。
その後、通常の COBOL 規則に従って比較が実行されます。 世紀値を接頭部として付けることによって英数字の比較が数字の比較に変更されることはありません。
非日付データ |
ウィンドウ表示 |
拡張 |
|
|---|---|---|---|
非日付データ |
ウィンドウ表示なし | ウィンドウ表示1 | ウィンドウ表示なし |
ウィンドウ表示 |
ウィンドウ表示1 | ウィンドウ表示 | ウィンドウ表示 |
拡張日付フィールド第 1 オペランド |
ウィンドウ表示なし | ウィンドウ表示 | ウィンドウ表示なし |
|
|||
比較条件に算術式を含めることができます。 算術式での日付フィールドの処理については、日付フィールドを使用する算術計算を参照してください。