Мне нужно найти количество дней между двумя датами.разница между двумя датами
Вот код:
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' не соответствует строке, указанной вами для возврата к дате, округление до строки и обратно приведет либо к ошибке, либо к неправильному результату. –
Вызов 'to_date()' значения 'date', чтобы преобразовать его в' date', является неправильным. –