Millennium Language Extensions and date fields

The millennium language extensions are designed to resolve the millennium problem caused by the use of two digits to represent the year in date fields of some applications, and to support the most common operations on date fields.

Many applications use two digits rather than four digits to represent the year in date fields, and assume that these values represent years from 1900 to 1999. This compact date format works well for the 1900s, but it does not work for the year 2000 and beyond because these applications interpret "00" as 1900 rather than 2000, producing incorrect results.

The millennium language extensions are designed to allow applications that use two-digit years to continue performing correctly in the year 2000 and beyond, with minimal modification to existing code. This is achieved using a technique known as windowing, which removes the assumption that all two-digit year fields represent years from 1900 to 1999. Instead, windowing enables two-digit year fields to represent years within a 100-year range known as a century window.

For example, if a two-digit year field contains the value 15, many applications would interpret the year as 1915. However, with a century window of 19602059, the year would be interpreted as 2015.

The millennium language extensions provide support for the most common operations on date fields: comparisons, moving and storing, and incrementing and decrementing. This support is limited to date fields of certain formats; for details, see DATE FORMAT clause.

For information about supported operations and restrictions when using date fields, see Restrictions on using date fields.