使用Prepared Statement将日期插入数据库

时间:2012-06-28 21:34:28

标签: jsp date prepared-statement

我希望以这种方式使用JSP中的Prepared Statement将用户输入的格式YYYY-MM-DD的日期插入到数据库中:

 SimpleDateFormat reFormat = new SimpleDateFormat("YYYY-MM-DD") 
 Date activityDate = reFormat.parse(request.getParameter("activity_date"));
 java.sql.Date sqlDate = new java.sql.Date(activityDate.getTime());

 String query = "INSERT INTO schedule(login_name,activity_date) VALUES (?, ?)";
 PreparedStatement stmt = connection.prepareStatement(query);
 stmt.setString(1,request.getParameter("name_of_user"));
 stmt.setDate(2,sqlDate);
 stmt.executeUpdate();

但是,如果用户在数据库中输入例如:2012-06-22,则会保存错误的日期2012-01-01而不是2012-06-22

有人知道这是什么问题吗?

1 个答案:

答案 0 :(得分:2)

正确的格式为yyyy-MM-ddY并不代表任何内容,D表示一年中的某一天(而不是一个月中的某一天)。