java中的MySQL语法出错

时间:2013-09-30 19:21:44

标签: java mysql

PreparedStatement sql1 = connection.prepareStatement("UPDATE `bantable` " +
        "SET reason=?, admin=?, started=?, time=?, ends=?, banned=?, datetimes=? " +
        "WHERE DATE_SUB(`datetimes`, NOW())<=0 AND player=?;");
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in
    your SQL syntax; check the manual that corresponds to your MySQL server
    version for the right syntax to use near 'NOW())<=0 AND player='Juustoast''
    at line 1

为什么会打印出错误?

2 个答案:

答案 0 :(得分:0)

NOW()只是一个日期时间,所以如果datetimes也可以使用普通运算符进行比较

WHERE datetimes < NOW()

如果datetimes datetimedatetimestamp,您必须转换它。

答案 1 :(得分:0)

NOW()不是时间间隔,因此您无法对其应用DATE_SUB。使用another answer中建议的解决方案。