ORA-01722: неверный номер в plsql - PullRequest
2 голосов
/ 06 апреля 2020

если я использовал это, я не получаю никакой ошибки

(ph.x_date >= to_date('01/05/2016') and ph.x_date <= to_date('01/04/2020'))

но если диапазон такой большой

(ph.x_date >= to_date('01/05/2002') and ph.x_date <= to_date('01/04/2020'))

я получаю неверный номер ошибки. где моя ошибка Спасибо

Ответы [ 3 ]

1 голос
/ 06 апреля 2020

вам необходимо указать формат даты, например, to_date('01/05/2002','DD/MM/YYYY') и убедиться, что формат даты, который вы получаете из таблицы, совпадает с указанным вами

1 голос
/ 06 апреля 2020

To_date() должен использоваться всегда, когда вы знаете, что данные даты будут поступать в определенном формате всегда, который вы знаете заранее. Используйте to_date, как это To_date('date', <dateformat>), это читает дату в явном формате, который вы можете сделать так, чтобы она читалась.

В вашем случае это читает по умолчанию, но что, если ваш порядок поиска изменится в вашем x_date, я думаю, ваш данные в столбце xdate имеют некоторые проблемы. Проверьте данные до 2016 года. Здесь есть другой порядок, например mm/yy/dd или et c, отличающийся от формата to_date

0 голосов
/ 06 апреля 2020

Я думаю, что ваши данные в списке SELECT имеют проблему

Пожалуйста, проверьте вывод команды ниже и посмотрите, возвращает ли она вывод

 select *
 from  data ph 
 where ph.x_date >= to_date('01/05/2002') and 
 ph.x_date <=to_date('01/05/2016')  ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...