首页 文章

oracle两个日期之间的区别

提问于
浏览
-1

我需要找到两个日期之间的天数 .

这是代码:

declare
datum DATE;
sdate DATE;
shpord NUMBER;
rozdiel NUMBER;
MESSAGE VARCHAR(2000) := 'Nemozete Uvolnit VO c.';

begin
datum := TO_DATE('&OLD:NEED_DATE','DD.MM.YYYY');
sdate := TO_DATE(sysdate,'DD.MM.YYYY');

rozdiel := datum - sdate;
IF rozdiel > 5 THEN
   ERROR_SYS.Record_General('Nemozete Uvolnit VO c','');
END IF;
end;

我收到一个错误:

ORA-01858:找到了一个非数字字符,其中包含数字

2 回答

  • 0

    改变这一行:

    sdate := TO_DATE('sysdate','DD.MM.YYYY');
    

    至:

    sdate := sysdate;
    

    您正在尝试将STRING'sysdate'转换为日期,而不是sysdate的函数结果 .

    此外,观看您的nls设置,如果您的日期格式未设置为'dd.mm.yyyy',您将收到错误 .

  • 3

    不要在约会时拨打 to_date . sysdate 已经是 date . 如果你想从 datum 减去当天的午夜

    declare
      datum DATE;
      sdate DATE;
      shpord NUMBER;
      rozdiel NUMBER;
      MESSAGE VARCHAR(2000) := 'Nemozete Uvolnit VO c.';
    begin
      datum := TO_DATE('&OLD:NEED_DATE','DD.MM.YYYY');
      sdate := trunc(sysdate);
    
      rozdiel := datum - sdate;
      IF rozdiel > 5 THEN
         ERROR_SYS.Record_General('Nemozete Uvolnit VO c','');
      END IF;
    end;
    

相关问题