【发布时间】:2014-04-05 19:20:35
【问题描述】:
我在计算 Oracle(11.2.0.3.0) 和 Teradata(13.10.07.15) 中两个日期之间的差异时遇到了一个奇怪的问题。 Oracle 中的 NLS_CALENDAR 参数设置为 GREGORIAN。
Oracle Teradata
------------------------------------------------------------------------------------------------------------
select trunc(sysdate) - date'1800-01-01' diff from dual; select date - date'1800-01-01' diff;
DIFF diff
---------- -----------
78224 78224
目前没有区别。
select trunc(sysdate) - date'1500-01-01' diff from dual; select date - date'1500-01-01' diff;
DIFF diff
---------- -----------
187788 187797
相差 9 天。
select trunc(sysdate) - date'1000-01-01' diff from dual; select date - date'1000-01-01' diff;
DIFF diff
---------- -----------
370413 370418
相差 5 天。
select trunc(sysdate) - date'0500-01-01' diff from dual; select date - date'0500-01-01' diff;
DIFF diff
---------- -----------
553038 553039
相差 1 天。
select trunc(sysdate) - date'0001-01-01' diff from dual; select date - date'0001-01-01' diff;
DIFF diff
---------- -----------
735297 735295
相差 2 天。
有人知道为什么会有这种差异吗?
【问题讨论】:
标签: sql oracle date calendar teradata