为什么数据库插入数报错

qq_19002237 2014-09-17 03:09:04
Name Type Nullable Default Comments
----------------- ------------------ -------- ------- --------
FINANCIALID NUMBER(10)
APPRAISEAQ VARCHAR2(255 CHAR) Y
APPRAISELT VARCHAR2(255 CHAR) Y
APPRAISESY VARCHAR2(255 CHAR) Y
BANKID NUMBER(10)
BANKLAND VARCHAR2(255 CHAR) Y
BANKNAME VARCHAR2(255 CHAR) Y
CREATEDATE TIMESTAMP(6) Y
DATERATE FLOAT
DINGRATE FLOAT
FINANCIALONE VARCHAR2(255 CHAR) Y
FINANCIALTHREE VARCHAR2(255 CHAR) Y
FINANCIALTWO VARCHAR2(255 CHAR) Y
FINANCIALTYES VARCHAR2(255 CHAR) Y
HTTPADDRESS VARCHAR2(255 CHAR) Y
IFBREAKEVEN VARCHAR2(255 CHAR) Y
INVESTHORIZON NUMBER(10)
INVESTHORIZONNAME VARCHAR2(255 CHAR) Y
INVESTMONEY NUMBER(10)
INVESTMONEYNAME VARCHAR2(255 CHAR) Y
MONEYTYPE VARCHAR2(255 CHAR) Y
ONCLICKNUMBER NUMBER(10)
OPERATOR VARCHAR2(255 CHAR) Y
PROCEEDSENDDATE TIMESTAMP(6) Y
PROCEEDSSTARTDATE TIMESTAMP(6) Y
PROCEEDSTYPE VARCHAR2(255 CHAR) Y
PRODUCTNAME VARCHAR2(255 CHAR) Y
PRODUCTTYPE VARCHAR2(255 CHAR) Y
REMAR VARCHAR2(255 CHAR) Y
SELLENDDATE TIMESTAMP(6) Y
SELLLAND VARCHAR2(255 CHAR) Y
SELLSTARTDATE TIMESTAMP(6) Y
SHOWFIRST NUMBER(10)
STAUTS VARCHAR2(255 CHAR) Y
YEARRATE FLOAT


插入数据
INSERT INTO financial VALUES ('345', null, null, null, '3', '南京', '农业银行','0', '0', '1', '120', '0', '人民币', '操作人adminUser。导入文件名:银行数据-2014-07-28(1).xlsx2014-35-21 11:21', null, null, '浮动收益', '“金钥匙·安心得利”2014年第1664期私人银行人民币理财产品', '封闭', null, '2014-12-30 00:00:00', '南京', '2014-07-26 00:00:00', '0', '5.15', '', '2014-08-21 11:35:21', '0', null, null, null, '2', '0', '0', '三个月');

报错

ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间
哪里有问题啊?求解答?
...全文
854 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方淄墨 2016-03-03
  • 打赏
  • 举报
回复
先看一眼你时间那一列的数据类型,如果不是以字符类型存储那就要用to_date()函数对字符串进行处理以后才能正常存储
zkzhong 2016-03-03
  • 打赏
  • 举报
回复
你要插入的时间字段,要利用to_date('','yyyy-MM-dd hh:mi:ss')来varchar类型的数据转换一下,不然肯定不行啊。 insert into ss values (to_date('2014/11/22','yyyy/MM/dd')); insert into ss values ('2014/11/22');我都测试了一下,第一种就没问题。
aoxuelingshuang 2015-01-19
  • 打赏
  • 举报
回复
TIMESTAMP(6) 的时间戳类型在插入的时候要注意转换,需要使用to_date来进行转换后转换。
microhex 2014-12-08
  • 打赏
  • 举报
回复
.xlsx2014-35-21 11:21 应该不是这个问题,毕竟只是一个文件的名称。 原因可能是你的to_date()函数还没掌握好吧,,,,慢慢学啊
雪加里奥 2014-11-27
  • 打赏
  • 举报
回复
'2014-12-30 00:00:00' 这个字段改为 '2014-12-29 23:59:59' 试试 只差一秒嘛!
ffshao 2014-11-25
  • 打赏
  • 举报
回复
引用 2 楼 bw555 的回复:
上面那个不是主要问题 '2014-08-21 11:35:21'直接这样写是字符串类型,如果对应的字段是日期类型,数据库会按数据库默认的日期掩码DD-MON-YY进行转换,就会出现ORA-01847的报错 插入的时候应该先把字符串用to_date指定掩码转化为日期类型再执行插入操作
to_date('2014-08-21 11:35:21','yyyy-mm-dd hh24:mi:ss')
如2楼所说,字符类型的日期转换成date类型的日期时,需要使用to_date(日期字符串,掩码格式)来进行转换,字符串与掩码不对应的话,会报错或者转换错误。 说一下年份掩码: 如果格式为YY且只提供了最后2位年份,那么服务器会在前面自动添加当前年份的前两位; 如果格式为YYY且只提供了最后2位年份,那么服务器会同YY格式一样操作; 如果格式为YYYY且只提供了最后2位年份,那么服务器会在前面接00; 如果格式为RR或RRRR且只提供了最后2位年份,则确定世纪的规则如下: 确定指定年世纪的规则如下: ● 如果指定年在00~49之间,并且当前年份在00~49之间,那么指定年的世纪就与当前年份的世纪相同。因此,指定年的前两位数字就等于当前年份的前两位数字。例如,如果指定年为15,而当前年份为2007,那么指定年就是2015。 ● 如果指定年在50~99之间,并且当前年份在00~49之间,那么指定年的世纪就等于当前年份的世纪减去1。因此,指定年的前两位数字等于当前年份的前两位数字减去1。例如,如果指定年为75,而当前年份为2007,那么指定年就是1975。 ● 如果指定年在00~49之间,并且当前年份在50~99之间,那么指定年的世纪就等于当前年份的世纪加上1。因此,指定年的前两位数字等于当前年份的前两位数字加上1。例如,如果指定年为15,而当前年份为2075,那么指定年就是2115。 ● 如果指定年在50~99之间,并且当前年份在50~99之间,那么指定年的世纪就与当前年份的世纪相同。因此,指定年的前两位数字就等于当前年份的前两位数字。例如,如果指定年为55,而当前年份为2075,那么指定年就是2055。
ning_wnn2014 2014-11-22
  • 打赏
  • 举报
回复
同意2楼所说,插入日期格式的时候,根据字段类型是字符串,插入的时候应该先把字符串用to_date指定掩码转化为日期类型再执行插入操作。
不写代码的钦 2014-09-19
  • 打赏
  • 举报
回复
如二楼所说,应该那个地方有问题。
yiyongle 2014-09-18
  • 打赏
  • 举报
回复
用to_date函数把varchar2类型转换成date类型
IT_lau 2014-09-18
  • 打赏
  • 举报
回复
2014-35-21 11:21
sych888 2014-09-17
  • 打赏
  • 举报
回复
---2014-35-21 11:21 确认一下你的数据库日期格式 SQL> show parameter nls_date NAME TYPE VALUE ------------------------------------ ----------- ------------- nls_date_format string
binsweet 2014-09-17
  • 打赏
  • 举报
回复
2楼正解,是要用to_date来格式化并转换日期
bw555 2014-09-17
  • 打赏
  • 举报
回复
上面那个不是主要问题 '2014-08-21 11:35:21'直接这样写是字符串类型,如果对应的字段是日期类型,数据库会按数据库默认的日期掩码DD-MON-YY进行转换,就会出现ORA-01847的报错 插入的时候应该先把字符串用to_date指定掩码转化为日期类型再执行插入操作
to_date('2014-08-21 11:35:21','yyyy-mm-dd hh24:mi:ss')
bw555 2014-09-17
  • 打赏
  • 举报
回复
2014-35-21 11:21 这个日期是咋回事?35和21那个是月份?那个是天?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧