我需要查找两个日期之间的天数。两个日期之间的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'显然是错误的。 –