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