new java.util.Date() 插入到oracle的date中小时,分,秒都舍去了 用java.sql.Timestamp类吧http://www.javayou.com 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 刚刚试验了,也不行new java.sql.Timestamp(System.currentTimeMillis());insert 到 oracle的date中,小时。分。秒都不见了…… 这个肯定是可以的,只是你的代码有问题prep.setTimestamp(1,new java.sql.Timestamp(System.currentTimeMillis()); Locale selectedLocale=new Locale("en","GB"); String date =DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT,selectedLocale).format(new java.util.Date()); String sql = "insert into useronline (username_id, username, sid," + "logintime,activetime,position,sysid) values (seq_useronline_username_id.NEXTVAL,?,?,to_date(?,'dd/mm/yy hh24:mi'),to_date(?,'dd/mm/yy hh24:mi'),?,?)"; ps = conn.prepareStatement(sql); try { ps.setString(1,username); ps.setString(2,strPro.produceUniqueRandomString()); ps.setString(3,date); ps.setString(4,date); ps.setString(5,position); ps.setInt(6,sysid); ps.execute(); return true; }这样试试,肯定行,我就是这样搞定的 public String getFormatedTime(String format) { SimpleDateFormat formatter = new SimpleDateFormat(format); Calendar cal = Calendar.getInstance(); return formatter.format(cal.getTime()); }//format指的是指定的格式,如果你要去掉小时分秒,就可以设置format = "yyyy-MM-dd"//上面是随便写的一个方法,关键是SimpleDateFormat,建议找jdk文档看看 SQL类型到Java类型的映射(JDBC规范)BIT booleanTINYINT byteSMALLINT shortINTEGER intBIGINT longREAL floatFLOAT doubleDOUBLE doubleDECIMAL java.math.BigDecimalNUMERIC java.math.BigDecimalCHAR java.lang.StringVARCHAR java.lang.StringLONGVARCHAR java.lang.StringDATE java.sql.DateTIME java.sql.TimeTIMESTAMP java.sql.TimeStampBINARY byte[]VARBINARY byte[]LONGVARBINARY byte[]BLOB java.sql.BlobCLOB java.sql.ClobARRAY java.sql.ArrayREF java.sql.RefSTRUCT java.sql.Struct但是,里面一些SQL的类型可能会依具体数据库不同而有不同,显然Oracle和MySQL的DATE不是一个概念。 根本不应该使用Oracle的to_date方法!!!!!应该改成setTimestamp!!!!!!!!!!!!!!String sql = "insert into useronline (username_id, username, sid," + "logintime,activetime,position,sysid) values (seq_useronline_username_id.NEXTVAL,?,?,?,?,?,?)"; ps.setTimestamp(3,new java.sql.Timestamp(System.currentTimeMillis())); ps.setTimestamp(4,new java.sql.Timestamp(System.currentTimeMillis()));这样已经完成可以了,你为什么非要用String呢 为什么不用SimpleDateFormat,,,而且你可以使用,new java.sql.Date(new java.util.Date().getTimes()); 不可能自动将时、分、秒舍去的,除非你的Oracle的字段不是Date类型的或者你用了java.sql.Date类型,而不是java.sql.Timestamp java运算符错误 没有源码的class有没有办法修改里面的方法? 关于字符串数组的排序 请教一条字符串题目 不懂,请高手过来看下!!急!!! 问个题外话:想上宽带不知道是电信的好还是广电的好 如何检测一个数据库连接的断开? 请教一个简单的阶乘递归的问题 请教:Java高手读书之路 如何在程序中选中jTable的某一行? 特别紧急,快帮我看看,100分够不够(在线等待) 请问:try catch 的问题
String date =DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT,selectedLocale).format(new java.util.Date());
String sql = "insert into useronline (username_id, username, sid," +
"logintime,activetime,position,sysid) values (seq_useronline_username_id.NEXTVAL,?,?,to_date(?,'dd/mm/yy hh24:mi'),to_date(?,'dd/mm/yy hh24:mi'),?,?)";
ps = conn.prepareStatement(sql);
try {
ps.setString(1,username);
ps.setString(2,strPro.produceUniqueRandomString());
ps.setString(3,date);
ps.setString(4,date);
ps.setString(5,position);
ps.setInt(6,sysid);
ps.execute();
return true;
}
这样试试,肯定行,我就是这样搞定的
SimpleDateFormat formatter = new SimpleDateFormat(format);
Calendar cal = Calendar.getInstance();
return formatter.format(cal.getTime());
}
//format指的是指定的格式,如果你要去掉小时分秒,就可以设置
format = "yyyy-MM-dd"
//上面是随便写的一个方法,关键是SimpleDateFormat,建议找jdk文档看看
TINYINT byte
SMALLINT short
INTEGER int
BIGINT long
REAL float
FLOAT double
DOUBLE double
DECIMAL java.math.BigDecimal
NUMERIC java.math.BigDecimal
CHAR java.lang.String
VARCHAR java.lang.String
LONGVARCHAR java.lang.String
DATE java.sql.Date
TIME java.sql.Time
TIMESTAMP java.sql.TimeStamp
BINARY byte[]
VARBINARY byte[]
LONGVARBINARY byte[]
BLOB java.sql.Blob
CLOB java.sql.Clob
ARRAY java.sql.Array
REF java.sql.Ref
STRUCT java.sql.Struct
但是,里面一些SQL的类型可能会依具体数据库不同而有不同,显然Oracle和MySQL的DATE不是一个概念。
应该改成
setTimestamp!!!!!!!!!!!!!!String sql = "insert into useronline (username_id, username, sid," +
"logintime,activetime,position,sysid) values (seq_useronline_username_id.NEXTVAL,?,?,?,?,?,?)"; ps.setTimestamp(3,new java.sql.Timestamp(System.currentTimeMillis()));
ps.setTimestamp(4,new java.sql.Timestamp(System.currentTimeMillis()));这样已经完成可以了,你为什么非要用String呢
而且你可以使用,new java.sql.Date(new java.util.Date().getTimes());