我的表有两个 DATE 格式属性,但是,当我尝试插入值时会引发错误:日期格式图片在转换整个输入字符串之前结束。 这是我尝试的代码:
insert into visit
values(123456, '19-JUN-13', '13-AUG-13 12:56 A.M.');
我认为问题在于,12:56
但 Oracle 文档说date
暗示了日期和时间。
也许您应该检查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.'));
此外,OracleDATE
将日期和时间信息存储在一起。
你需要改变会话
您可以在插入之前尝试
sql : alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'
我认为您要插入的不是日期,而是字符串。您需要使用to_date()
函数,如下所示:
insert into table t1 (id, date_field) values (1, to_date('20.06.2013', 'dd.mm.yyyy'));
我今天遇到了这个错误,发现这是一个格式不正确的年份......
select * from es_timeexpense where parsedate > to_date('12/3/2018', 'MM/dd/yyy')
请注意,这一年只有三个“y”。它应该有4个。
仔细检查您的格式。