我已经给出了日期类型和时间戳数据类型(2015年4月2日下午3:10:36),但我收到了以下错误。这个日期我是从XLSX表中调用的。
Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '4/2/2015 3:10:36 PM' for column 'date' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4235)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4169)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2617)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2778)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2825)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2156)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1379)
at com.tasc.xls.SearchExcel.main(SearchExcel.java:64)
答案 0 :(得分:2)
您可能在预准备语句中将日期作为字符串传递,而不是将其作为Date
类型传递。将其作为日期类型传递将正确地将您的日期发送到mysql。
示例:
PreparedStatement pstmt = con.prepareStatement("UPDATE my_table set my_date = ?");
pstmt.setDate(1, yourDateConvertedIntoDateType);