我的表有两个DATE格式属性,但是,当我尝试插入值时,它会抛出一个错误:**日期格式图片在转换整个输入字符串之前结束。**以下是我尝试的代码:
insert into visit values(123456, '19-JUN-13', '13-AUG-13 12:56 A.M.');
字符串我认为问题出在12:56上,但Oracle文档说date意味着日期和时间。
12:56
date
xqk2d5yq1#
也许您应该检查NLS_DATE_FORMAT并使用符合格式的日期字符串。或者你可以在INSERT语句中使用to_date函数,如下所示:
NLS_DATE_FORMAT
INSERT
to_date
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将日期和时间信息存储在一起。
DATE
hrirmatl2#
您需要更改会话你可以在插入之前尝试
sql : alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'
字符串
oipij1gg3#
我想你要插入的不是日期,而是一个字符串。你需要使用to_date()函数,像这样:
to_date()
insert into table t1 (id, date_field) values (1, to_date('20.06.2013', 'dd.mm.yyyy'));
gcuhipw94#
我今天遇到了这个错误,发现这是一个格式不正确的年份...
select * from es_timeexpense where parsedate > to_date('12/3/2018', 'MM/dd/yyy')
字符串注意,年份只有三个y。它应该有4。仔细检查您的格式。
daolsyd05#
我遇到了一个类似的问题,即转换的查询存在于子查询中。在执行子查询时,它给出了很好的结果,而在执行完整查询时,它无法执行。因此,我所做的是删除所有其他条件,如空检查和长度检查的主查询和子查询只有日期转换为基础的过滤器。希望有帮助
5条答案
按热度按时间xqk2d5yq1#
也许您应该检查
NLS_DATE_FORMAT
并使用符合格式的日期字符串。或者你可以在INSERT
语句中使用to_date
函数,如下所示:字符串
此外,Oracle
DATE
将日期和时间信息存储在一起。hrirmatl2#
您需要更改会话
你可以在插入之前尝试
字符串
oipij1gg3#
我想你要插入的不是日期,而是一个字符串。你需要使用
to_date()
函数,像这样:字符串
gcuhipw94#
我今天遇到了这个错误,发现这是一个格式不正确的年份...
字符串
注意,年份只有三个y。它应该有4。
仔细检查您的格式。
daolsyd05#
我遇到了一个类似的问题,即转换的查询存在于子查询中。在执行子查询时,它给出了很好的结果,而在执行完整查询时,它无法执行。
因此,我所做的是删除所有其他条件,如空检查和长度检查的主查询和子查询只有日期转换为基础的过滤器。
希望有帮助