JFinal使用oracle,数据库中Date字段插入问题

江哥一直在 发布于 2013/04/30 16:24
阅读 2K+
收藏 1

使用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

以下是问题补充:

@江哥一直在:在线等!!! (2013/04/30 16:25)
加载中
1
绝望的八皮
绝望的八皮

ar是透传jdbc的。没有做任何自作主张的处理。

你用Jdbc是怎么处理还是该怎么处理。这是数据库本身的行为。oracle的时间类型是非常恶心的。。

酱油
酱油
我觉得很灵活
0
本人纯属虚构
本人纯属虚构

format成字符串格式

比如record.set("AC_CREATED", "2013-04-30 16:28:00");

江哥一直在
江哥一直在
不行啊!。还是报错。 com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLDataException: ORA-01858: 在要求输入数字处找到非数字字符
0
黄龍
黄龍

嘛~jfinal我不熟,但是jdbc的话:

record.set("AC_CREATED", new Date());

这个date字段类型你用sql包的试下吧,不要用util的!

0
飞翔吧
飞翔吧
请问问题解决了么?
走位风骚闪着腰
走位风骚闪着腰
回复 @moke44@sohu.com : 正解
m
moke44@sohu.com
new java.sql.Timestamp( new java.util.Date().getTime())
0
taote
taote

http://www.tbdazhe.com/archives/462

这是关于java与oracle时间之间的关系:java向ORACLE插入时间,应该对你有帮助。

0
韩帅
韩帅
发现一个新问题,Oracle中,表字段名一定要大写。否则插入不了日期。困扰两天,引以为鉴啊!
0
overtake
overtake
可有人解决,遇到了同样问题,时间插入有点难
0
走位风骚闪着腰
走位风骚闪着腰

引用来自“overtake”的评论

可有人解决,遇到了同样问题,时间插入有点难
new java.sql.Timestamp( new java.util.Date().getTime())
返回顶部
顶部