我在jsp中创建了一个投诉登记表,其中有一个类型为“time”的输入字段,而且时间不应该总是当前时间,因此我不能使用sql的currenttime()方法。
现在,当把它分配给数据库时,我得到了http status 500–internal server error作为“检查与mysql服务器版本相对应的手册,在第1行的'.'20:20:00')'附近使用正确的语法”。
这里我使用了“setstring()”方法。我尝试过settime(),但在这里也不起作用,而setstring()对date值起作用,date被正确地插入到db中*/
这是我的jsp代码,用于在“pcs”数据库的“test”表中插入时间。
<%@ 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();
从表单的input type=“time”字段将时间插入mysql db的正确方法是什么。?
3条答案
按热度按时间bgibtngc1#
您应该将时间字符串转换为
java.time.LocalTime
使用setObject
要将其作为参数传递:whitzsjs2#
你可以这样试试
wlzqhblo3#
您应该将存储在字符串变量中的日期转换为
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