1

减去一个日期SYSDATE会得到否定的结果:

select floor(SYSDATE - dateemb) from pilote;

FLOOR(SYSDATE-DATEEMB)
----------------------
                -29126
                -29137
                -29522

有什么解决办法吗?

表先导:

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
4

1 回答 1

4

这个先前的问题表明,Oracle 中有一种日期格式可以使您的 92 年变为 2092 年(即未来),而不是预期的 1992 年。如果此格式已用于插入您的 2 位数年份数据,那么您的日期都是错误的,如果您将它们完整地写出来,您应该能够确认这一点。解决方案是在创建数据时修复数据并使用 4 位数年份。

于 2012-06-03T08:51:16.730 回答