Previous Topic: Special Considerations While Processing PSEsNext Topic: DSCL Select Criteria Boolean (AND/OR) Logic


Year 2000

Due to the Year 2000 predicament, some dates are considered special. These dates include 0, 99000, 99365, 99366, and 99999, specified in any accepted date format. The concern is treating these dates as special dates to avoid inadvertent selection. Statements using relative operands such as TODAY+7 can select these special dates. Since DSCL normally just does an arithmetic compare, if the current date of TODAY were 2000.001 or higher, never expire dates such as 99365 would be selected.

To avoid this problem in the past, you would have to explicitly code exclusions in most cases. Now, DSCL avoids these special dates automatically. If an operand in the selection criteria is EXPDT, the other operand is checked. If this check resolves into a special date, the operator can only be EQ or NE. Using any other operands is not allowed. The operands themselves must also be single term operands, that is, no multiple term combinations with special dates such as EXPDT, EQ, and 99.365+10 are allowed.

Examples. Remember that any valid forms can be used with Select or Exclude to achieve desired results

EXPDT,GT,0

command reject

EXPDT,NE,0

true for all non zero expiration dates including special dates

EXPDT,LT,99365

command reject

EXPDT,EQ,99365,AND,EXPDT,LT,2100.001

valid but false for 99365 or any special date

EXPDT,EQ,99365,OR,EXPDT,LT,2100.001

true for 99365 and any non-special date below 2100

EXPDT,LT,2000.001,AND,EXPDT,EQ,0

True for all non-special expdts below Y2K and all zero expdts

EXPDT,GT,TODAY

True for all non-special expdts from current date to 2155.366

EXPDT+10,EQ,TODAY+20

Valid command but false for any special dates

EXPDT+10,NE,99365

Command reject

For improved performance, see F1EXPDT-Format-1 DSCB expiration date.