在我的 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不记得时间部分。如果您实际上在数据库中有一个DATETIMEorTIMESTAMP字段而不是一个DATE字段,那么宁可使用setTimestamp()with ajava.sql.Timestamp代替。这样时间部分也将被存储。
@BalusC 的答案是完美的。但作为替代解决方案,您可以使用数据库提供的函数在查询时将字符串转换为日期。例如(如果您使用 Oracle),
to_date(date_in_String, format)
试试这个 :
new SimpleDateFormat("dd-MM-yyyy HH:mm").parse(mydate);