java - 如何在java中提取MS SQL SERVER 2008 R2的TIME(7)字段的值?

标签 java sql-server-2008-r2 type-conversion apache-metamodel

我正在使用 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。毫秒精度丢失。 请建议如何在不舍入值的情况下获得以毫秒为单位的精确值?

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/

相关文章:

java - Word Net - Word Synonyms & related word constructs - Java 或 Python

java - Apache Camel CXF

sql - where 子句中的条件 'and' 取决于现有值?

c++ - 什么是快速提升无符号整型元素数组大小的方法?

java - 详细说明 Ada 和 Java 之间类型差异的示例代码

java - H2 不删除临时表的序列

java - 无法在 Apache POI 中导入 XSSF

SQL Server 查询以对连续日期进行分组

sql - 在 sql 查询中使用 top 关键字记录问题

c++ - 如何在 C/C++ 中将 long long 转换为 unsigned int