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

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:05:23
我使用下面的语句:
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm:ss");
String nowdate = sdf.format(new Date());
System.out.println(nowdate);
sql = insert into tablename(colname) values('nowdate')----字段colname为ORACLE date类型
运行后输出:
----->08-09-11 10:22:27
----->ORA-01843: 无效的月份

我也试过了其他的方法,类似的有:
Date dat =new date()
sql中把nowdate换成 dat.toString()
同时执行不行的

我查看了一下ORACLE中:select * from NLS_SESSION_PARAMETERS
得到:NLS_DATE_FORMAT ----DD-MON-RR
NLS_DATE_LANGUAGE----SIMPLIFIED CHINESE
我尝试了修改:NLS_DATE_FORMAT ----为:DD-MM-RR或DD-MON-YY或DD-MM-YYYY
NLS_DATE_LANGUAGE----为:AMERICAN
等等上面类似的,也试过他们的组合都不行的。同时我在调试的时候也修改过SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm:ss")中的格式,多种组合都不行的

有详细解决办法并给出代码且运行成功的追加分数 谢谢了!!
。。。。。。。。。。。。。。。。。。。。。。。。。。。。
对于兄弟: chinagenius补充的回答:
我按照你的方法:
SimpleDateFormat sdf = new SimpleD

修改答复:很抱歉,java.sql.Date()肯定是在什么地方用的,好像是Hibernate的时候可以直接设值,现在不用Hibernate就只能用to_date函数了 改成下面的吧 呵呵!!

import java.util.Date;导入util包下的Date类 用于后面to_date使用

SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd hh:mm:ss");
String nowdate = sdf.format(new Date());
System.out.println(nowdate);
sql= "insert into tablename(colname) values(to_date('"+nowdate+"','yy-MM-dd hh:mm:ss'))";

statement.execute(sql);这样肯定就好了

SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");
String nowdate = "'"+sdf.format(new Date())+"'";
/*不好意思刚忘记了*/
String value = "char2date("+ nowdate + ",'yyyy-mm-dd')";
System.out.println(nowdate);
sql = insert into tablename(colname) values(value)

注意区别

你的这个语句:insert into tablename(colname) values('nowdate')
插入的实际上为 'nowdate'字符串,而不是nowdate变量的值