使用时间戳的准备好的语句需要更多纳秒
Prepared statement using Timestamp needs more nanoseconds
我正在使用以下语句从我的 SQL 数据库中获取时间戳:
stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()))
哪个工作得很好 returns:
2013-02-22 12:27:34.0
现在正好需要更精确一点,像这样:
2013-02-22 12:27:34.000
所以我在文档中找到了以下方法,这显然正是我想要的:
setNanos(int n)
Sets this Timestamp object's nanos field to the given value.
但我需要弄清楚如何将其包含到我准备好的声明中?
例如我试过
stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3));
但比 returns 出现以下错误:
The method setTimestamp(int, Timestamp) in the type PreparedStatement is not applicable for the arguments (int, void)
非常感谢您的帮助!
setNanos()
returns无效。所以表达式 new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3)
是 void 类型。您不能将 void 传递给方法 setTimestamp()
。您必须传递时间戳。
所以使用一个变量:
Timestamp timestamp = new Timestamp(example.getExampleDate().getTime());
timestamp.setNanos(3);
stmt.setTimestamp(i++, timestamp);
我正在使用以下语句从我的 SQL 数据库中获取时间戳:
stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()))
哪个工作得很好 returns:
2013-02-22 12:27:34.0
现在正好需要更精确一点,像这样:
2013-02-22 12:27:34.000
所以我在文档中找到了以下方法,这显然正是我想要的:
setNanos(int n)
Sets this Timestamp object's nanos field to the given value.
但我需要弄清楚如何将其包含到我准备好的声明中?
例如我试过
stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3));
但比 returns 出现以下错误:
The method setTimestamp(int, Timestamp) in the type PreparedStatement is not applicable for the arguments (int, void)
非常感谢您的帮助!
setNanos()
returns无效。所以表达式 new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3)
是 void 类型。您不能将 void 传递给方法 setTimestamp()
。您必须传递时间戳。
所以使用一个变量:
Timestamp timestamp = new Timestamp(example.getExampleDate().getTime());
timestamp.setNanos(3);
stmt.setTimestamp(i++, timestamp);