0

我正在使用Apache Meta-modelMS SQL SERVER 2008 R2数据库中提取值。MS SQL SERVER 2008 R2数据库中有一个类型的字段,TIME(7)其 java 等效类型是java.sql.Timejava.sql.Time不显示毫秒。例如

Actual `TIME(7)` value in database: `12:28:16.9475678`
whereas I getting: `12:28:16`

如何以毫秒为单位获取时间?

更新:

当我尝试使用org.joda.time.LocalTime如下所示的毫秒数时:

   LocalTime localTime = new LocalTime(((Time)row.getValues()[pos]).getTime());
   localTime.toString(); 

输出:(12:28:16.947它显示 的舍入值9475678

将其转换为 后String,我得到毫秒的舍入值12:28:16.947。毫秒精度丢失。 请建议如何在不四舍五入的情况下获得以毫秒为单位的确切值?

更新:

我尝试按照建议使用 getNanos() ,但我得到的毫秒数为零,除了我的确切毫秒值,例如:

实际值:12:28:16.9475678 我得到 12:28:16.9470000

代码:-

 long timestamp =new Timestamp(((Time)row.getValues()[pos]).getTime()).getNanos();
4

1 回答 1

2

java.sql.Time不包括毫秒。尝试改用java.sql.Timestamp,因为这将包括小数秒。

于 2016-06-13T13:19:05.557 回答