编辑:请指出其他人是否看到此问题,以及我是否做错了什么。
我正在尝试通过VerticaDayTimeInterval构造函数向包含单个VerticaDayTimeInterval列的表中添加行。 无论我之前给出了什么值,精度和小数值都被错误地打印,并且检索所有6的精度。
dayInt = new VerticaDayTimeInterval(10, 10, 01, 8, 2, 1, false) ; ((VerticaPreparedStatement) pstmt).setObject(1, dayInt) ; pstmt.addBatch() ; System.out.println(dayInt.toString());
dayInt = new VerticaDayTimeInterval(10, 10, 02, 7, 3, 2, false) ; ((VerticaPreparedStatement) pstmt).setObject(1, dayInt) ; pstmt.addBatch() ; System.out.println(dayInt.toString());
dayInt = new VerticaDayTimeInterval(10, 10, 03, 6, 43, 3, false) ; ((VerticaPreparedStatement) pstmt).setObject(1, dayInt) ; pstmt.addBatch() ; System.out.println(dayInt.toString());
表格输出
DayInt
-------------------
10 10:03:49.000211
11 07:00:00.0002
9 09:09:05.000005
(3 rows)
检索并打印结果集中的行。
for (int x=1 ; rs.next() ; ++x) {
VerticaDayTimeInterval dti = (VerticaDayTimeInterval)(rs.getObject(1));
System.out.println("vertica object tostring "+dti.toString()+" frac "+dti.getFraction()+" precision "+dti.getPrecision());
}
输出
vertica object tostring 10 10:03:49.211000 frac 211000 precision 6
vertica object tostring 11 07:00:00.200000 frac 200000 precision 6
vertica object tostring 9 09:09:05.500000 frac 500000 precision 6
rs.next
在做什么,你是如何从表中获取这些数据的?方法可能是问题的原因。编辑:你的代码看起来正确,我认为问题是由于你从表中检索数据的方式引起的。 - sorifiend(VerticaDayTimeInterval)(rs.getObject(1));
,而是尝试rs.getObject(1, VerticaDayTimeInterval)
。 - sorifiend