DBCENTURY

 

Specifies how to expand DATE and DATETIME values which were abbreviated to one or two digits.

 

Syntax:

 

DBCENTURY={R, C, F, P}

 

Possible values:

 

R (default)

= current – value is prefixed with the digits of the current century

C

= closest – value is expanded to the nearest date in a past, future, or current century

F

= future – value is expanded to the nearest date which is definitely in the future

P

= past – value is expanded to the nearest date which is definitely in the past

 

Usage and examples:

 

Years entered as two digits are expanded as shown in the examples below:

 

DBCENTURY=R

(or not set)

Current date: 1/15/2017

User enters: 1/10/17

Current century prefix – 20: 1/10/2017

Obtained expansion: 1/10/2017

 

Current date: 1/15/2017

User enters: 1/20/17

Current century prefix – 20: 1/20/2017

Obtained expansion: 1/20/2017

DBCENTURY=P

Current date: 1/15/2017

User enters: 1/10/17

Current century prefix – 20: 1/10/2017

Nearest past century prefix – 19: 1/10/1917

Logics: Both variants are definitely in the past, but 1/10/2017 is closer to the current date.

Resulting expansion: 1/10/2017

 

Current date: 1/15/2017

User enters: 1/20/17

Current century prefix – 20: 1/20/2017

Nearest past century prefix – 19: 1/20/1917

Logics: Only one variant is definitely in the past, 1/20/1917.

Resulting expansion: 1/10/1917

DBCENTURY=F

Current date: 1/15/2017

User enters: 1/10/17

Current century prefix – 20: 1/10/2017

Nearest future century prefix – 21: 1/10/2117

Logics: Only one variant is definitely in the future, 1/10/2117.

Resulting expansion: 1/10/2117

 

Current date: 1/15/2017

User enters: 1/20/17

Current century prefix – 20: 1/20/2017

Nearest future century prefix – 21: 1/20/2117

Logics: Both variants are definitely in the future, but 1/20/2017 is closer to the current date.

Resulting expansion: 1/20/2017

DBCENTURY=C

Current date: 1/15/2017

User enters: 1/10/17

Current century prefix – 20: 1/10/2017

Nearest past century prefix – 19: 1/10/1917

Nearest future century prefix – 21: 1/10/2117

Logics: Of the three, 1/10/2017 is closest to the current date.

Resulting expansion: 1/10/2017

 

Current date: 1/15/2017

User enters: 1/20/17

Current century prefix – 20: 1/20/2017

Nearest past century prefix – 19: 1/20/1917

Nearest future century prefix – 21: 1/20/2117

Logics: Of the three, 1/20/2017 is closest to the current date.

Resulting expansion: 1/20/2017

Current date: 1/15/2017

User enters: 1/15/97

Current century prefix – 20: 1/15/2097

Nearest past century prefix – 19: 1/15/1997

Nearest future century prefix – 21: 1/15/2117

Logics: Of the three, 1/15/1997 is closest to the current date.

Resulting expansion: 1/15/1997

Current date: 1/15/2097

User enters: 1/15/17

Current century prefix – 20: 1/15/2017

Nearest past century prefix – 19: 1/15/1917

Nearest future century prefix – 21: 1/15/2117

Logics: Of the three, 1/15/2117 is closest to the current date.

Resulting expansion: 1/15/2117

 

Years entered as a single digit are first expanded to two digits by prefixing them with 0 and only then – to four digits by DBCENTURY.

Years entered as three digits are not expanded.

Years before 99 AD (or CE) require leading zeros to avoid expansion.

 

P and F cannot return the current date, as it is neither in the past nor in future.

 

DBCENTURY applies at runtime, so it must be set in inet.env.

 

If the database server and the client system have different settings for DBCENTURY, the client system settings precede over the database server.

 

Expansion depends on when the application was executed and how accurate the system clock and calendar settings are. Check your system settings to avoid wrong expansion.

 

 

Related articles:

CENTURY attribute

century

DATE

DATETIME