sql недопустимая ошибка месяца в командной строке sql - PullRequest
0 голосов
/ 21 апреля 2020

На самом деле я пытался получить все столбцы в диапазоне дат в Oracle дБ, и мне это удалось в SQL Developer, но когда я выполняю тот же код в SQL интерфейсе командной строки, я получаю сообщение об ошибке

ORA-01843: недопустимый месяц

Я знаю, что это ошибка в формате to_date, но она выполняется в SQL разработчику, как я и ожидал, но не в SQL командной строке. Почему это происходит ??

select to_date('01/04/2020') from dual;

Даже эта команда не работает.

Я перепробовал все методы форматирования для преобразования to_date метода и проверил nls_date_format, который показывает 'DD-MM-RR'

1 Ответ

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

Я бы посоветовал вам всегда предоставлять соответствующую маску формата. Не полагайтесь на Oracle неявное преобразование и угадывание того, что вы хотели сделать.

Строка, которая выглядит как '01/04/20', может быть что угодно , в зависимости от используемого вами формата (dd/mm/yy, yy/dd/mm, mm/yy/dd ... все это допустимо, но только один правильный).

SQL> alter session set nls_Date_format = 'dd-mm-rr';

Session altered.

SQL> select to_date('01/04/2020', 'dd/mm/yyyy') result from dual;

RESULT
------------------------------
01-04-20

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...