Формат формата даты в формате Oracle заканчивается перед преобразованием всей строки ввода

Моя таблица имеет два атрибута формата DATE, однако, когда я пытаюсь вставить значение, это вызывает ошибку: формат даты заканчивается перед преобразованием всей строки ввода. Вот мой код:

insert into visit
values(123456, '19-JUN-13', '13-AUG-13 12:56 A.M.');

Я думаю, что проблема связана с 12:56, но в документации Oracle говорится, что date подразумевает дату и время.

Ответ 1

Возможно, вы должны проверить NLS_DATE_FORMAT и использовать строку даты, соответствующую формату. Или вы можете использовать функцию to_date в операторе INSERT, как показано ниже:

insert into visit
values(123456, 
       to_date('19-JUN-13', 'dd-mon-yy'),
       to_date('13-AUG-13 12:56 A.M.', 'dd-mon-yyyy hh:mi A.M.'));

Кроме того, Oracle DATE хранит дату и время.

Ответ 2

вам нужно изменить сеанс

вы можете попробовать перед вставкой

 sql : alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'

Ответ 3

То, что вы пытаетесь вставить, это не дата, я думаю, а строка. Вам нужно использовать функцию to_date(), например:

insert into table t1 (id, date_field) values (1, to_date('20.06.2013', 'dd.mm.yyyy'));

Ответ 4

Я имел эту ошибку сегодня и обнаружил, что это был неправильно отформатированный год...

select * from es_timeexpense where parsedate > to_date('12/3/2018', 'MM/dd/yyy')

Обратите внимание, что в году только три года. Должно быть 4.

Дважды проверьте ваш формат.