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。如何修改此代码 我这里没有使用任何课程。我不认为我可以在这里使用方法 数据来自用户输入
答案 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();