How do I pass a Date as SQL parameter in Java without losing the time part?
本问题已经有最佳答案,请猛点这里访问。
例如,我有这个字符串:06/10/2013 18:29:09。 我想转换此字符串并将其放在SQL数据库中(作为日期)。
如何将其转换为SQL日期,以便可以将其插入数据库? 我希望小时分钟和秒钟保持不变。
我尝试了以下方法:
1 2 3 | SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); Date javaDate = sdf.parse("06/10/2013 18:29:09"); java.sql.Date date = new java.sql.Date(javaDate.getTime()); |
问题出在这里:
更多信息:
- Date vs TimeStamp vs calendar?
这是一个简单的演示。在像这样的数据库表中。
你可以像这样插入它。
1 2 3 4 5 6 7 8 9 10 11 12 13 | //the SQL statement for creating the database table create table user(id, integer primary key, username varchar(100), date_created varchar(100)); //the java code to insert into the table created above. try{ String date = new SimpleDateFormat("dd/MM/YYYY HH:mm:ss").format(new Date()); String sql ="insert into user(username, date_created) values('olupotd', '"+date+"')"; int done = statement.executeUpdate(sql); if(done > 0) //inserted else //not inserted. }catch(java.sql.SQLException e){} |
希望有所帮助
您将使用SimpleDateFormat对象将字符串解析为java.util.date,然后使用getTime()方法实例化java.sql.Date。
1 2 3 4 | String input ="06/10/2013 18:29:09"; SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss"); java.util.Date dt = sdf.parse(input); java.sql.Date dtSql = new java.sql.Date(dt.getTime()); |
如果您使用String类型进行日期输入,然后要将其保存在MySQL等数据库中,则应使用适当的日期格式。有一个名为"SimpleDateFormat"的类,您可以将其用于此目的。您可以在以下链接中找到示例,并简要说明其工作原理。希望能帮助到你。
示例:http://www.java2s.com/Tutorial/Java/0040__Data-Type/SimpleDateFormat.htm
最好的祝福。