[英]oracle difference between two dates
我需要找到兩個日期之間的天數。
這是代碼:
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:在期望數字的地方找到了非數字字符
不要在日期上致電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;
更改此行:
sdate := TO_DATE('sysdate','DD.MM.YYYY');
至:
sdate := sysdate;
您正在嘗試將STRING'sysdate'轉換為日期,而不是sysdate的函數結果。
另外,請注意您的nls設置,如果您的日期格式未設置為“ dd.mm.yyyy”,則會出現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.