我正在开发netbeans 8.并插入带有日期的数据错误。
我在jtable中有日期值。我尝试使用for循环在jtable中插入行,并以dd-MM-yyyy格式插入DATE值。
try {
for (int i = 0; i < tbcustomer.getRowCount(); i++) {
dateformater = new SimpleDateFormat("yyyy-MM-dd");
sql = "insert into tbcustomerdetail values(?,?,?,?,?,?,?,?,?,?)";
pst = con.prepareStatement(sql);
pst.setString(1, textid.getText());
pst.setString(2, tbcustomer.getValueAt(i, 1).toString());
pst.setString(3, tbcustomer.getValueAt(i, 2).toString());
pst.setString(4, tbcustomer.getValueAt(i, 3).toString());
pst.setString(6, tbcustomer.getValueAt(i, 5).toString());
pst.setString(7, tbcustomer.getValueAt(i, 6).toString());
//Test case 1
// pst.setString(5, dateformater.format(tbcustomer.getValueAt(i, 4)));
//try secode case
// String date=tbcustomer.getValueAt(i, 4).toString();
// Date date1=new SimpleDateFormat("dd-MM-yyyy").parse(date);
// JOptionPane.showMessageDialog(null, date1);
// pst.setString(5, dateformater.format(date1));
pst.setString(8, tbcustomer.getValueAt(i, 7).toString());
pst.setString(9, tbcustomer.getValueAt(i, 8).toString());
pst.setInt(10, 1);
pst.execute();
}
} catch (Exception e) {
e.printStackTrace();
}
此行错误
com.microsoft.sqlserver.jdbc.SQLServerException: Conversion failed when converting date and/or time from character string.
非常感谢。
答案 0 :(得分:0)
更新
可能更好的方法是像代码中那样将日期转换为日期,然后使用setDate方法
String date = tbcustomer.getValueAt(i, 4).toString();
Date date1=new SimpleDateFormat("dd-MM-yyyy").parse(date);
pst.setDate(5, date1);
改为在sql中进行转换
sql = "insert into tbcustomerdetail values(?,?,?,?, CONVERT(DATE, ?, 105),?,?,?,?,?)";
并完全按照日期发送日期字符串
pst.setString(5, tbcustomer.getValueAt(i, 4).toString());