【发布时间】:2021-01-18 03:41:47
【问题描述】:
当从 Postgresql 数据库加载负数 Interval 并将其转换为毫秒时,它的符号被忽略,我得到一个正值。
我正在将YearToSecond 转换为doubleValue()。
@Test
void testYearToSecondNegativeInterval()
{
assertThat(YearToSecond.valueOf(2).doubleValue()).isEqualTo(2);
assertThat(YearToSecond.valueOf(-2).doubleValue()).isEqualTo(-2);
YearToSecond minus9802 = YearToSecond.valueOf("-0-0 +0 00:00:09.082000000");
assertThat(minus9802.doubleValue()).isEqualTo(-9802);
}
此单元测试失败:
org.opentest4j.AssertionFailedError:
Expecting:
<9082.0>
to be equal to:
<-9802.0>
but was not.
我从调试会话中获得了 String 表示 (-0-0 +0 00:00:09.082000000)。
查询相同的值时显示为-00:00:09.082 与intervalstyle = 'sql_standard' 和PT-9.082S 与intervalstyle = 'iso_8601'。
【问题讨论】:
标签: java postgresql jooq