使用JFinal过程中,发现数据库中的Date类型的数据通过JFinalRecord record = new Record();这样set进去报错,提示:
com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLDataException: ORA-01858: 在要求输入数字处找到非数字字符
各种办法都试了,
1、record.set("AC_CREATED", "TO_DATE('2007-12-20 18:31:34','yyyy-mm-dd,hh24:mi:ss')");
2、record.set("AC_CREATED", "sysdate");
3、record.set("AC_CREATED", new Date());
请问大家,怎样处理?把数据库字段类型修改成varchar2?@JFinal
ar是透传jdbc的。没有做任何自作主张的处理。
你用Jdbc是怎么处理还是该怎么处理。这是数据库本身的行为。oracle的时间类型是非常恶心的。。
我觉得很灵活format成字符串格式
比如 record.set("AC_CREATED","2013-04-3016:28:00");
不行啊!。还是报错。com.jfinal.plugin.activerecord.ActiveRecordException:java.sql.SQLDataException:ORA-01858:在要求输入数字处找到非数字字符嘛~jfinal我不熟,但是jdbc的话:
record.set("AC_CREATED",newDate() );
这个date字段类型你用sql包的试下吧,不要用util的!
请问问题解决了么?回复@moke44@sohu.com:正解newjava.sql.Timestamp(newjava.util.Date().getTime())http://www.tbdazhe.com/archives/462
这是关于java与oracle时间之间的关系: java向ORACLE插入时间,应该对你有帮助。
发现一个新问题,Oracle中,表字段名一定要大写。否则插入不了日期。困扰两天,引以为鉴啊!可有人解决,遇到了同样问题,时间插入有点难版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。