向数据库中插入时间属性,
- Java code
SimpleDateFormat simpleTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义日期格式 默认时间格式:yyyy-MM-dd HH:mm:ss //SimpleDateFormat simpleDate = new SimpleDateFormat("yyyy-MM-dd"); String passTime = pwoEditForm.getPasstime(); java.util.Date passUtilDate = simpleTime.parse(passTime); java.sql.Date passSqlDate = new java.sql.Date(passUtilDate.getTime()); pwOrder.setPasstime(passSqlDate);
数据插入了,但是并没有按照定义好的yyyy-MM-dd HH:mm:ss格式插入,而是yyyy-MM-dd的格式,导致时分秒数据丢失!
以下是数据库中查询的系统时间格式:
- SQL code
--alter session set NLS_date_format ='yyyy-mm-dd hh24:mi:ss'; select sysdate from dual; --2011-9-23 18:35:53
显然格式也是没有问题的。
请问各位大拿以前有没有遇到这样的问题,帮下了!~
------解决方案--------------------
passUtilDate.getTime()这个拿到的只是天。没有时分秒啊。。你debug可以看看。。
api不在手边,lz可以查查api
------解决方案--------------------
simpleTime.Format(new 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。可以试一下。。。
------解决方案--------------------
楼主试试直接传一个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格式的话。
- Java code
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楼那样。
------解决方案--------------------
sql.Date是没有时分秒的。我记得可以不用转,也就是java.util.Date就可以
要插入数据库有时分秒的sql包里用Timestamp
- Java code
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());
------解决方案--------------------
insert into user_t1 values(seq_cc.nextval,'ccc','123',to_date(?,'yyyy-MM-ddHH24:mm:ss'));
这样插入 就不会出问题的 。。。。。。。。。。。。。。但是只能oracle 哦