使用Timestamp准备好的语句需要更多纳秒

时间:2016-11-11 12:13:15

标签: java jdbc prepared-statement mssql-jdbc sql-timestamp

我使用以下语句从我的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)

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

getBrands(params?: any): Observable<IBrand[]> { return this.http.get(Host + endpoints.brands, params) .map((res: Response) => res.json() as IBrand[]) .catch((error: any) => { this.notifications.show({message: 'Kunde inte hämta märken', theme: 'danger'}); return Observable.throw(error.json().error || 'Server fel'); }); } 返回void。所以表达式setNanos()的类型为void。您无法将void传递给方法new java.sql.Timestamp(example.getExampleDate().getTime()).setNanos(3)。您必须传递时间戳。

所以使用变量:

setTimestamp()