Java 将负JOOQ YearToSecond对象转换为毫秒的正确方法

Java 将负JOOQ YearToSecond对象转换为毫秒的正确方法,java,postgresql,jooq,Java,Postgresql,Jooq,当从Postgresql数据库加载负的间隔并将其转换为毫秒时,它的符号被忽略,我得到一个正值。 我正在使用doubleValue()将年转换为秒 此单元测试失败,原因是: org.opentest4j.AssertionFailedError: Expecting: <9082.0> to be equal to: <-9802.0> but was not. org.opentest4j.AssertionFailedError: 期望: 等于: 但事实并非如此

当从Postgresql数据库加载负的
间隔
并将其转换为毫秒时,它的符号被忽略,我得到一个正值。 我正在使用
doubleValue()
年转换为秒

此单元测试失败,原因是:

org.opentest4j.AssertionFailedError: 
Expecting:
 <9082.0>
to be equal to:
 <-9802.0>
but was not.
org.opentest4j.AssertionFailedError:
期望:
等于:
但事实并非如此。
我从调试会话中获得了
字符串
表示(
-0-0+0 00:00:09.082000000
)。
当使用
intervalstyle='sql\u standard'
查询相同的值时,显示为
-00:00:09.082
,使用
intervalstyle='iso\u 8601'
查询相同的值时,一种可能的解决方法是直接获取毫秒值:

create.select(DSL.extract(TABLE.COLUMN, DatePart.EPOCH)
                 .mul(1000)
                 .cast(Integer.class))
      .from(COLUMN)
但这意味着需要额外的工作,因为与将
年转换为秒相比,必须提取额外的字段

create.select(DSL.extract(TABLE.COLUMN, DatePart.EPOCH)
                 .mul(1000)
                 .cast(Integer.class))
      .from(COLUMN)