jsp在数据库中插入时间

时间:2014-03-05 05:49:32

标签: database jsp

PreparedStatement pstmt = conn.prepareStatement(
    "INSERT INTO discussion(section_id, weekday, room, mandatory, starttime,endtime)
     VALUES ( ?, ?, ?, ?, ?, ?)");
     pstmt.setInt(1, Integer.parseInt(request.getParameter("SECTION_ID")));                                        
pstmt.setString(2, request.getParameter("WEEKDAY"));
pstmt.setString(3, request.getParameter("ROOM"));
pstmt.setString(4, request.getParameter("MANDATORY")); 
pstmt.setString(5, request.getParameter("starttime")); 
pstmt.setString(6, request.getParameter("endtime")); 

现在我将数据库中的starttime和endtime设置为没有时区类型的时间 如果我使用setTime来获取结束时间和startime。如何修改此代码 我这里没有使用任何课程。我不认为我可以在这里使用方法 数据来自用户输入

2 个答案:

答案 0 :(得分:0)

假设用户整合的dateString格式为dd-MMM-yyyy HH:mm:ss

然后你可以像这样使用setDate

private static final String TIME_FORMAT = "HH:mm:ss";
public static final SimpleDateFormat timeFormat = new SimpleDateFormat(TIME_FORMAT, Locale.getDefault());

pstmt.setTime(5,new Time(timeFormat.parse(request.getParameter("starttime")).getTime()));

希望这会有所帮助

答案 1 :(得分:0)

1.你应该采用这种方法:

PreparedStatement pstmt;

pstmt = con.prepareStatement("INSERT INTO table_name (starttime,endtime)VALUES(?,?)");
pstmt.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime));
pstmt.setTimestamp(2, new java.sql.Timestamp(new java.util.Date().getTime));
pstmt.executeUpdate();

<强>样品:

PreparedStatement pstmt;
pstmt = con.prepareStatement("INSERT INTO table_name (col_name)VALUES(?)");
pstmt.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime));
pstmt.executeUpdate();

2.另一个有趣的答案:

您可以使用SimpleDateFormat将给定模式中的String解析为java.util.Date对象。

假设它是HH:mm,那么你可以这样做:

String time = request.getParameter("time");
Date date = null;

try 
{
    date = new SimpleDateFormat("HH:mm").parse(time);
}
catch (ParseException e) 
{
    request.setAttribute("time_error", "Please enter time in format HH:mm");
}

拥有java.util.Date object后,您可以将其转换为java.sql.Time and using PreparedStatement#setTime(),将其存储在TIME列中。

PreparedStatement pt;
pt = connection.prepareStatement("INSERT INTO tablename (columname) VALUES (?)");
pt.setTime(1, new Time(date.getTime()));
pt.executeUpdate();