我需要查找兩個日期之間的天數。兩個日期之間的oracle差異
這裏是代碼:
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: a non-numeric character was found where a numeric was expected
@Consider在未來,請也編輯出謝謝和其他類似的噪音。這將使您的建議編輯更完整。 – ryanyuyu
**不要**:'sdate:= TO_DATE(sysdate,'DD.MM.YYYY');'。 'sysdate'是**已經是日期**。你的代碼需要'sysdate'並隱含地將它轉換成一個字符串,因爲'to_date'需要一個字符串。用於隱式轉換的格式基於'NLS_DATE_FORMAT'。然後'to_date'將該字符串翻譯回日期。如果NLS_DATE_FORMAT'與您爲日期指定的字符串不匹配,那麼往返字符串和返回的往返行程將導致錯誤或不正確的結果。 –
對'date'值調用'to_date()'將其轉換爲'date'顯然是錯誤的。 –