在我的 JSP 页面中,我有一个字段,它是日期,当我得到 as 时request.getParameter("dateVal");
给了我
15-Dec-2012 12:21.
我想将此值传递给我的数据库过程并插入/更新到表中。如何将值作为setDate
使用传递prepareCall
给数据库?
谢谢
第一步将使用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
orTIMESTAMP
字段而不是一个DATE
字段,那么宁可使用setTimestamp()
with ajava.sql.Timestamp
代替。这样时间部分也将被存储。
@BalusC 的答案是完美的。但作为替代解决方案,您可以使用数据库提供的函数在查询时将字符串转换为日期。例如(如果您使用 Oracle),
to_date(date_in_String, format)
试试这个 :
new SimpleDateFormat("dd-MM-yyyy HH:mm").parse(mydate);