Java JDBC-在prepared语句中使用sysdate会产生错误

Java JDBC-在prepared语句中使用sysdate会产生错误,java,ms-access,jdbc,Java,Ms Access,Jdbc,在执行准备好的语句时,出现以下错误。我的数据库使用ms access java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 10. at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.jav

在执行准备好的语句时,出现以下错误。我的数据库使用ms access

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 10.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3148)
.....
这是我准备好的声明

addUserSt = con.prepareStatement("insert into Accounts(Username, First_name, last_name, gender, birthday, email, civil_status, password, role, date_join) values(?,?,?,?,CDATE(?),?,?,?,?, sysdate)");
下面是我如何执行准备好的语句。。。这里的变量都是字符串

                dc.addUserSt.setString(1, uname);
                dc.addUserSt.setString(2, fname);
                dc.addUserSt.setString(3, lname);
                dc.addUserSt.setString(4, gender);
                dc.addUserSt.setString(5, bday);
                dc.addUserSt.setString(6, email);
                dc.addUserSt.setString(7, civil);
                dc.addUserSt.setString(8, pass);
                dc.addUserSt.setString(9, role);
我不明白为什么参数太少会出现错误,我想我把准备好的语句设置好了。当我删除sysdate并同时删除列中的date_join时,程序运行良好。但我需要获取当前日期以存储在数据库中。
任何帮助都将不胜感激:)

sysdate函数无效。改为使用Date()

使用函数时不要忘记括号