一个很小的问题(java存oracle数据库)

来源:百度知道 编辑:UC知道 时间:2024/06/05 16:55:37
在oracle数据库有一个colname字段是date类型的,我该怎么用JAVA把Date类型的数据存进入
这样行吗?错误在哪里?请给出正确代码
Date dat = new Date();
String sql = "insert into tablename(colname) values("+dat+")" ;
然后执行上面的sql语句就报错了。

提供详细的成功代码和说明还给加分
colname 是oracle的date类型
报错信息-----ORA-00917: 缺失逗号

对于第三个兄弟的回答,如果我想存进数据库带上小时和分钟、秒呢?应该to_date(str,'yyyy-mm-dd-hh-mm-ss')这样吗?

对于第一个兄弟的回答,报错了:ORA-01858: 在要求输入数字处找到非数字字符

dat是个date类型
应该写成
insert into tablename(colname) values ('"+dat.toString()+"')" ;
这样数据库才能把dat.toString()转化为数据库中的日期类型。

//
应按照 fancyivan 的做法去做,我只是简单处理了,要符合各种数据库的要求,还得用函数转化。
str=dat.getYear()+"-"+dat.getMonth()+"-"+dat.getDay()+" "+dat.getHour()+":"+dat.getMinute()+":"+dat.getSecond();
String sql = "insert into tablename(colname)values(to_date('"+str+"','yyyy-MM24-dd hh:mm:ss'))";

colname和dat的数据类型是否一致
最好把报错的原因写出来,这样可以知道是哪个部分错了
比如是dat没有赋值,或者是类型不匹配
又或者是连接错误之类的

将日期型数据存入Oracle中时需要注意其格式:
string str;

String sql = "insert into tablename(colname)values(to_date(str,'yyyy-mm-dd'))";
这里的str为你的dat转换后的字符串, 其格式必须为后面指定的yyyy-mm-dd的形式.

因此,无论编程语言中要存入的日期是什么样的,必然得转化为字符串, 你只需要关注如何将Date dat转换为这种格式的字符串就行了.

btw: 其他格式也行,当个方便用哪个. 'mm-dd-yyyy', 'dd.mm.yyyy',