我正在使用 Apache Meta-model
从 MS SQL SERVER 2008 R2
数据库中提取值。 MS SQL SERVER 2008 R2
数据库中有一个 TIME(7)
类型的字段,其 java 等效类型为 java.sql.Time
但 java.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
。毫秒精度丢失。
请建议如何在不舍入值的情况下获得以毫秒为单位的精确值?
Updated:
我尝试按照建议使用 getNanos() ,但除了我的确切毫秒值外,我得到的毫秒数为零:
实际值:12:28:16.9475678,我得到 12:28:16.9470000
代码:-
long timestamp =new Timestamp(((Time)row.getValues()[pos]).getTime()).getNanos();
最佳答案
java.sql.Time不包括毫秒。尝试使用java.sql.Timestamp相反,因为这将包括秒的小数部分。
关于java - 如何在java中提取MS SQL SERVER 2008 R2的TIME(7)字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37788877/