java - 微软sql错误异常

标签 java sql-server-2008 exception

 try {
        //     con = dbConn.mySqlConnection();
            con = DatabaseConnection.getRAWConnection();
 String insertSqlTable = "insert into certification VALUES(?,?,?,?,?,?,CURRENT_TIMESTAMP,?)";
          pst = con.prepareStatement(insertSqlTable);
          pst.setInt(1, td.getEmpId());
        pst.setString(2, td.getRname());
        pst.setString(3, td.getStream());
        pst.setString(4, td.getCertificationType());
        pst.setString(5, td.getCertificationName());
        pst.setString(6, td.getCertificationDate());
        //pst.setTimestamp(7, timestamp);
        pst.setInt(7, td.getScore());

        int count = pst.executeUpdate();
        if (count >= 1) {
            con.commit();
            status = true;
        } else {
            System.out.println("Error occured while inserting certification details into database");
            con.rollback();
            status = false;
        }

我遇到以下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Operand type clash: int is incompatible with datetime2

最佳答案

而不是这个

pst.setInt(7, td.getScore());

使用

pst.setInt(8, td.getScore());

第 7 参数已作为 CURRENT_TIMESTAMP 存在。您有兴趣将第 8 参数设置为 1。

更新

试试这个

try {
        //  con = dbConn.mySqlConnection();
            con = DatabaseConnection.getRAWConnection();
 String insertSqlTable = "insert into certification VALUES(?,?,?,?,?,?,?,?)";
        pst = con.prepareStatement(insertSqlTable);
        pst.setInt(1, td.getEmpId());
        pst.setString(2, td.getRname());
        pst.setString(3, td.getStream());
        pst.setString(4, td.getCertificationType());
        pst.setString(5, td.getCertificationName());
        pst.setString(6, td.getCertificationDate());
        java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
        pst.setTimestamp(7, date);
        pst.setInt(8, td.getScore());

        int count = pst.executeUpdate();
        if (count >= 1) {
            con.commit();
            status = true;
        } else {
            System.out.println("Error occured while inserting certification details into database");
            con.rollback();
            status = false;
        }

}

关于java - 微软sql错误异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818813/

相关文章:

c# - 现在学习 C# 还是先学习 Java,然后再学习 C#?

java.io.NotSerializedException : For RowSet

java - Android 4.2 中的访问/SD 卡

sql - SQL存储过程的参数名称中的符号

c - 如何让 VC++ 的调试器在出现异常时中断?

java - 为什么无法在 JTesterDataSource 中注册 SQL 驱动程序?

sql - 如何检测哪些存储过程更新或插入某个表?

c# - 使用 Dapper 将项目列表(可能为空)作为 IN 子句的参数传递

c++ - C++ 是否支持 'finally' block ? (我一直听到的这个 'RAII' 是什么?)

android - "Can' t compress a recycled bitmap”单个设备异常