1

次のステートメントを使用して、SQL DB からタイムスタンプを取得しています。

stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()))

これはうまく機能し、次のように返されます。

2013-02-22 12:27:34.0 

次のように、より正確にする必要があります。

2013-02-22 12:27:34.000

したがって、ドキュメントで次の方法を見つけましたが、これは明らかに私が望んでいるものです。

setNanos(int n)

この Timestamp オブジェクトの nanos フィールドを指定された値に設定します。

しかし、それを準備済みステートメントに含める方法を理解する必要がありますか?

私は例えば

stmt.setTimestamp(i++, new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3));

しかし、それよりも次のエラーが返されます:

The method setTimestamp(int, Timestamp) in the type PreparedStatement is not applicable for the arguments (int, void)

助けてくれてありがとう!

4

1 に答える 1

1

setNanos()無効を返します。したがって、式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);
于 2016-11-11T12:45:39.027 に答える