tags:

views:

66

answers:

3

Range for Oracle Date Data Type: "January 1, 4712 BC to December 31, 9999 AD", Does the range has any logic behind it? I mean the range has any historic significance or it has something related to programming and memory size etc. I am just wondering, why only from January 1, 4712 BC to December 31, 9999 AD.

+1  A: 

I suspect that it's set the upper limit for ease of formating to the highest 4 digit year, and then deduced the start of range by the capackity of the underlying type.

djna
That seems to be logical!Thanks alot.
Charu
+3  A: 

That's the Julian date?

http://en.wikipedia.org/wiki/Julian_day

Wikipedia says 4713, hmm...off by 1...

I guess the upper limit is just because of the 4 digits.

Oracle doc says

http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i1847

Julian dates allow continuous dating by the number of days from a common reference. (The reference is 01-01-4712 years BCE, so current dates are somewhere in the 2.4 million range.)

EDIT

I guess the reason for 4712 instead of 4713 is that the conversion requires Y >= -4712:

http://en.wikipedia.org/wiki/Julian_day#Converting_Julian_calendar_date_to_Julian_Day_Number

Markus Winand
+1  A: 

4712: have a look at julian day: http://en.wikipedia.org/wiki/Julian_day#Alternatives

9999: the highest value presented in 4 digits - at end of this year we will have another "milleniumbug"

Mr Q.C.