我已经在JSP中创建了投诉注册表单,并且存在一个输入类型为“ time”的输入字段,而且时间不应该总是当前时间,因此我不能使用SQL的CURRENTTIME()方法。
现在将其分配给数据库时,我收到HTTP状态500 –内部服务器错误,因为“请检查与您的MySQL服务器版本相对应的手册,以获取在'.'20:20:00')附近使用的正确语法。在第1行”。
在这里,我使用了“ setString()”方法。 我已经尝试过setTime(),但是在这里也不起作用,而setString()用于日期值并且日期已正确插入数据库中。* /
这是我的jsp代码,用于将时间插入“ PCS”数据库的“测试”表中。
<%@ page import="java.sql.*" %>
String time=request.getParameter("time");
String url="jdbc:mysql://localhost:3306/pcs";
String uname="root";
String passw="publiccomplaint";
String query="insert into test values(?)";
Class.forName("com.mysql.jdbc.Driver");
Connection
con=DriverManager.getConnection(url,uname,passw);
PreparedStatement st=con.prepareStatement(query);
st.setString(1,time);
int count=st.executeUpdate();
st.close();
con.close();
从表单的输入type =“ time”字段中将时间插入MYSQL DB的正确方法是什么?
答案 0 :(得分:0)
您可以尝试这样
String time = "15:30:18";
DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
Date date = sdf.parse(time);
System.out.println("Time: " + sdf.format(date));
答案 1 :(得分:0)
您应该将存储在字符串变量中的日期转换为java.util.date
,然后转换为java.sql.date
String startDate="01-Feb-2013"; // Input String
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); // New Pattern
java.util.Date date = sdf1.parse(startDate); // Returns a Date format object with the pattern
java.sql.Date sqlStartDate = new java.sql.Date(date.getTime());
System.out.println(sqlStartDate); // Outputs : 2013-02-01
然后
preparedStatement.setDate(1,sqlStartDate);
答案 2 :(得分:0)
您应该将时间字符串转换为java.time.LocalTime
,并使用setObject
将其作为参数传递:
String time = "20:20:00"; // sample data
st.setObject(1, java.time.LocalTime.parse(time));