从SYSDATE
减去日期会产生负面结果:
select floor(SYSDATE - dateemb) from pilote;
FLOOR(SYSDATE-DATEEMB)
----------------------
-29126
-29137
-29522
对此有何解决方案?
表格pilote:Name Null? Type
----------------------------------------- -------- ----------------------------
NUMPIL NOT NULL NUMBER
NOMPIL VARCHAR2(25)
ADRPIL VARCHAR2(25)
SALAIRE NUMBER
COMMISSION NUMBER
DATEEMB DATE
使用的数据:
NUMPIL NOMPIL ADRPIL SALAIRE COMMISSION DATEEMB
------- -------- -------- -------- ---------- ---------
1333 FEDOI NANTES 24000 0 01-MAR-92
6589 DUVAL PARIS 18600 5580 12-MAR-92
7100 MARTIN LYON 15600 16000 01-APR-93
答案 0 :(得分:4)
这previous question表示Oracle中有一种日期格式,可以使你的92年到2092年(即将来),而非1992年。如果这种格式用于以2位数年份插入您的数据,那么您的日期都是错误的,如果您完整地写出来,您应该能够确认。解决方案是在创建数据时修复数据并使用4位数年。