Description:
Assume that I got this query:
String s = "INSERT INTO tbl (date1) VALUES(?);";
(In the DB the field is a Date).
PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(s);
Now, I want to initializing the values:
pstmt.setDate(1, new Date(20061018)); //not work
pstmt.setLong(1, 20061018); //not work
pstmt.setString(1, "20061018"); //not work
pstmt.setObject(1, 20061018); //not work
None of those options work, I always got the exception (Is this a bug?):
14:15:34,509 INFO [STDOUT] com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '2' for column 'FROM_DATE' at row 1
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
14:15:34,509 INFO [STDOUT] at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
14:15:34,509 INFO [STDOUT] at com.identify.qa.lab.servlets.PickComputer.addPickComputer(PickComputer.java:106)
14:15:34,509 INFO [STDOUT] at com.identify.qa.lab.servlets.PickComputer.doGet(PickComputer.java:60)
14:15:34,509 INFO [STDOUT] at com.identify.qa.lab.servlets.PickComputer.service(PickComputer.java:28)
14:15:34,509 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
14:15:34,509 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
14:15:34,509 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
14:15:34,509 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
14:15:34,509 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
14:15:34,509 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
14:15:34,509 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
14:15:34,509 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
14:15:34,509 INFO [STDOUT] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
14:15:34,509 INFO [STDOUT] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
14:15:34,509 INFO [STDOUT] at java.lang.Thread.run(Thread.java:595)
How to repeat:
Try to make query with date and insert value.
In the DB you should create field with Date.