有了PreparedStament,我有一个类型为timestamp的字段,我不想将其设置为固定值,而是调用NOW()。我该怎么做?
我试过了:
statement.setString(11, "NOW()")
但是尝试将字段设置为字符串“NOW()”而不是调用NOW()。
感谢。
答案 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
。