在我的JSP页面中,我有一个字段,它是date,当我获得request.getParameter("dateVal");
时,它会给我
15-Dec-2012 12:21.
我想把这个值传递给我的数据库过程,并插入/更新到表中。如何使用prepareCall
将值作为setDate
传递到数据库?
谢谢
发布于 2012-10-15 13:13:48
第一步是在控制器中使用SimpleDateFormat
将其解析为一个完整的java.util.Date
实例:
Date date = new SimpleDateFormat("dd-MMM-yyyy HH:mm.", Locale.ENGLISH).parse(dateVal);
然后,您可以在数据库层中围绕其时间创建一个java.sql.Date
:
statement.setDate(1, new java.sql.Date(date.getTime()));
与具体问题无关的,请注意,java.sql.Date
不记得时间部分。如果数据库中实际上有一个DATETIME
或TIMESTAMP
字段,而不是DATE
字段,那么应该使用带有java.sql.Timestamp
的setTimestamp()
。这样,时间部分也将被存储。
发布于 2012-10-15 13:49:42
@BalusC的答案是完美的。但作为替代方案,您可以在查询时使用数据库提供的函数将字符串转换为日期。例如(如果您使用Oracle),
to_date(date_in_String, format)
发布于 2012-10-15 13:13:53
试试这个:
new SimpleDateFormat("dd-MM-yyyy HH:mm").parse(mydate);
https://stackoverflow.com/questions/12896295
复制相似问题