从Java PreparedStatement中的字段调用函数?

时间:2017-07-17 10:54:36

标签: java sql jdbc prepared-statement

有了PreparedStament,我有一个类型为timestamp的字段,我不想将其设置为固定值,而是调用NOW()。我该怎么做?

我试过了:

statement.setString(11, "NOW()")

但是尝试将字段设置为字符串“NOW()”而不是调用NOW()。

感谢。

3 个答案:

答案 0 :(得分:3)

你做不到。但是在准备好的语句的SQL中,您可以使用?而不是NOW()

或者,您可以将?保留在SQL中,并执行statement.setDate( 11, new Date() );

答案 1 :(得分:1)

致电preparedStatement.setTimeStamp(11, LocalDateTime.now().toString())

如果您不使用Java 8,或想学习如何将当前时间作为字符串,请参阅this

答案 2 :(得分:0)

您似乎愿意调用返回当前日期时间戳的mysql now()函数。

如果是这样,那么您必须将now()放入queryString作为"字符串部分的查询",如果您尝试使用preparedStatement,那么它将被视为纯字符串值而非 mysql函数。 ...请参阅此内容 http://www.mysqltutorial.org/mysql-now/

如果要调用名为now()的java代码函数,请从中删除双引号,并确保returns String