Oracle日期数据类型的范围:“公元前4712年1月1日至公元9999年12月31日”,该范围背后是否有任何逻辑?

时间:2010-08-28 10:34:01

标签: sql oracle

Oracle日期数据类型的范围:“公元前4712年1月1日至公元9999年12月31日”,该范围背后是否有任何逻辑? 我的意思是该范围具有任何历史意义,或者它与编程和内存大小等有关。 我只是想知道,为什么只能从公元前4712年1月1日到公元9999年12月31日。

3 个答案:

答案 0 :(得分:3)

那是朱利安的日期?

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

维基百科说4713,嗯...关闭1 ...

我猜上限只是因为4位数。

Oracle doc说

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

  

朱利安日期允许连续约会   按共同的天数   参考。 (参考是   公元前01-01-4712年,所以当前日期   在240万的某个地方   范围内。)

修改

我猜4712而不是4713的原因是转换需要Y> = -4712:

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

答案 1 :(得分:1)

我怀疑它将格式化的上限设置为最高的4位数年份,然后根据基础类型的容量推断出范围的开始。

答案 2 :(得分:1)

4712:看看朱利安日:http://en.wikipedia.org/wiki/Julian_day#Alternatives

<9>:最高值以4位数字显示 - 今年年底我们将有另一个“milleniumbug”