从ORACLE中的SYSDATE减去日期

时间:2012-06-03 07:56:43

标签: date oracle10g datediff sysdate

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

1 个答案:

答案 0 :(得分:4)

previous question表示Oracle中有一种日期格式,可以使你的92年到2092年(即将来),而非1992年。如果这种格式用于以2位数年份插入您的数据,那么您的日期都是错误的,如果您完整地写出来,您应该能够确认。解决方案是在创建数据时修复数据并使用4位数年。