急!急!向oracle数据库中插入时间格式问题! 本帖最后由 hu_shengyang 于 2011-09-23 18:44:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 passUtilDate.getTime()这个拿到的只是天。没有时分秒啊。。你debug可以看看。。api不在手边,lz可以查查api getTime() 方法的作用: long getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 这个应该没问题啊 楼主你System.out.println(passSqlDate);一下不就知道你传过去的是什么格式的了吗?知道是哪里的问题就好解决了啊…… 你可以把类中该属性设为String类型的,然后在oracle数据库中插入时用insert into table values(to_date('2009-5-7 07:09:37','yyyy-mm-dd HH:MI:SS(24)'))如果是12小时进制的就不加24,如果是24小时进制的就加24。可以试一下 date timestamp都试过了,只能存入年月日,后面的时分秒都没了 楼主试试直接传一个new Date()给数据库么?其实你可以把数据库设置成varchar2的 ,因为你在服务器端有做了处理了。 通过jdbc或才hb设置参数时,不能用setDate(),要用setTimestamp()比如 quer.setTimestamp();stmt.setTimestamp();//词语可能写得不对,LZ校正一下这个在windows下是一样的,但在linux下不一样。 insert into user_t1 values(seq_cc.nextval,'ccc','123',to_date('2010-09-15','yyyy-mm-dd')); Date里面的方法大多都已经过时了。用日历类 Calendar 你的代码也可以。如果你确定你从Form传过来的是符合yyyy-MM-dd HH:mm:ss格式的话。SimpleDateFormat simpleTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String passTime = pwoEditForm.getPasstime();//这边可以打印出来看看System.out.println(passTime );java.util.Date passUtilDate = simpleTime.parse(passTime);//没必要用sql的Date重新封装所以我删掉了.直接下面这句。如果你那个对象需要的是SQL的Date你再补回,但其实应该是一样的,Date是他的父类pwOrder.setPasstime(passUtilDate); orcale数据库插时间需要转换格式,就像13楼那样。 java.sql.Date往数据库里直接保存,数据库中的字段是date类型,所以必须转为java.sql.Date,但是如果转为java.sql.Date类型,则只保留了前面的 yyyy-MM-dd部分,而后面的HH-mm-ss则被去掉了 sql.Date是没有时分秒的。我记得可以不用转,也就是java.util.Date就可以要插入数据库有时分秒的sql包里用TimestampSimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); java.util.Date utilDate=new Date(); java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime()); insert into user_t1 values(seq_cc.nextval,'ccc','123',to_date(?,'yyyy-MM-ddHH24:mm:ss'));这样插入 就不会出问题的 。。但是只能oracle 哦 我用的hibernate,直接就用面向对象的方式插入,数据库语句那些我也知道。现在问题也解决了。 hibernate4.1.8 问题 雪中坐等 java web中文传值问题,急 帮忙修改下正则 大家帮忙看一下这是什么错误? displaytag与struts2的标签间怎么传递数据? 请问一下在jsp程序遇到了关于设置class文件的程序错误 数据库问题 如何在easystruts视图中选择easy datasource进行数据源的配置 请教,给我一个EJB方面的实力,散分 求兼职。。。。(j2ee) java过滤器(Filter)配置文件映射(url-pattern)问题 我想从静态类中复制给<s:select list
api不在手边,lz可以查查api
long getTime()
返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
这个应该没问题啊
其实你可以把数据库设置成varchar2的 ,因为你在服务器端有做了处理了。
stmt.setTimestamp();
//词语可能写得不对,LZ校正一下
这个在windows下是一样的,但在linux下不一样。
用日历类 Calendar
//这边可以打印出来看看
System.out.println(passTime );
java.util.Date passUtilDate = simpleTime.parse(passTime);
//没必要用sql的Date重新封装所以我删掉了.直接下面这句。如果你那个对象需要的是SQL的Date你再补回,但其实应该是一样的,Date是他的父类
pwOrder.setPasstime(passUtilDate);
往数据库里直接保存,数据库中的字段是date类型,所以必须转为java.sql.Date,但是如果转为java.sql.Date类型,则只保留了前面的 yyyy-MM-dd部分,而后面的HH-mm-ss则被去掉了
要插入数据库有时分秒的sql包里用Timestamp
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date utilDate=new Date();
java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());
现在问题也解决了。